php 逻辑训练小题目一(附我的答案)
来源:互联网 发布:linux系统有哪些 编辑:程序博客网 时间:2024/04/25 21:28
【程序1】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一
对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
斐波那契数列
<?php$k=2;$k1=0;$k2=1;$sum=0;for($i=1;$i<$k;$i++){$sum=$k1+$k2;$k1=$k2;$k2=$sum;}echo $k2;?>
【程序2】
题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数。
<?php$sum=0;for($i=101;$i<=200;$i++){ for($j=2;$j<=sqrt($i);$j++){ if($i%$j==0){continue 2 ;} } echo $i.'<br/>'; $sum++;}echo $sum."个"?>
做了【程序3】
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:
153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
<?php$a = array(); for ($i=0;$i<=9;$i++) { for ($j=0;$j<=9;$j++) { for ($m=0;$m<=9;$m++) { if ($i*$i*$i + $j*$j*$j + $m*$m*$m == 100*$i + 10*$j +$m) { $a[] = 100*$i + 10*$j +$m; } } } } print_r($a);
【程序4】
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
<?php$num=320;for($i=2;$i<=$num;$i++){ if($num%$i==0){ echo $i; $num=$num/$i; $i=1; }}?>
【程序5】
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下
的用C表示。
1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
if(学习成绩>=60){else if(学习成绩<=89){学生=B;}else{学生=A;}}
【程序6】
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
<?php$m=80;$n=40;function getit($j){for($k=2;$k<=$j/2;$k++){ if($j%$k==0){$arr[]=$k;} } return $arr;}$arrm=getit($m);$arrn=getit($n);for($i=count($arrm)-1;$i>=0;$i--){for($p=count($arrn)-1;$p>=0;$p--){ if($arrm[$i]==$arrn[$p]){echo '最大公约数:'.$arrm[$i];break 2;} }}echo '最小公倍数:'.$m*$n/$arrm[$i];?>
【程序7】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用while语句,条件为输入的字符不为'\n'.
<?php$str=" he ll l!1234565 _-!";$len=strlen($str);$k=0;$a=0;$b=0;$c=0;$d=0;while($k<$len){if($str[$k]==' '){$a++;}elseif(is_numeric($str[$k])){$b++;}elseif(64<ord($str[$k]) && 91>ord($str[$k]) || 96<ord($str[$k]) && 123>ord($str[$k])){$c++;}else{$d++;}$k++;}echo $a.$b.$c.$d;var_dump(64<$str[2]);?>
做了【程序8】
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),
几个数相加有键盘控制。
1.程序分析:关键是计算出每一项的值。
<?php$k=0;$t='';for($y=1;$y<=5;$y++){$g='';for($j=1;$j<=$y;$j++){ $g=$g.'2';}$k+=intval($g);}echo $k;?>
【程序9】
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完
数。
<?php//$num=320;/*for($k=2;$k<=1000;$k++){if(array_sum(part_prime($k))+1==$k){echo $k." ";}}function part_prime($num){for($i=2;$i<=$num;$i++){ if($num%$i==0){ $arr[]=$i; $num=$num/$i; $i=1; }}return $arr;}*///var_dump(part_prime($num));for($i=2;$i<=1000;$i++){ $sum=0; for($k=2;$k<=$i/2;$k++){ if($i%$k==0){$sum+=$k;} } if($sum+1==$i){echo $i.' ';}}?>
【程序10】
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多
少米?第10次反弹多高?
<?php$k=100;$sum=100;for($i=1;$i<=10;$i++){$k/=2;$sum+=$k;}echo $sum.' '.$k;?>
【程序11】
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
c语言:
#include<stdio.h>main(){ int i, j, k; int m=0; for(i=1;i<5;i++) for(j=1;j<5;j++) for(k=1;k<5;k++) { if(i!=j&&k!=j&&i!k) m++; printf("%d%d%d\n",q,j,k); } printf("%d\n",m);}
【程序12】
题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万
元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部
分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可
提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
<?php$profit=1060000;$num=floor($profit/100000);switch($num){ case 0 : $bonus= $profit* 0.1; break;case 1 : $bonus= 100000* 0.1+($profit-100000)*0.075; break;case 2 :case 3 : $bonus= 100000* 0.1+100000*0.075+($profit-200000)*0.05; break;case 4 :case 5 : $bonus= 100000* 0.1+100000*0.075+200000*0.05+($profit-400000)*0.03; break;case 6 :case 7 :case 8 :case 9 : $bonus= 100000* 0.1+100000*0.075+200000*0.05+200000*0.03+($profit-600000)*0.015; break;case 10 : $bonus= 100000* 0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+($profit-1000000)*0.01; break;}echo $bonus;?>
0 0
- php 逻辑训练小题目一(附我的答案)
- php 逻辑训练小题目二(附我的答案)
- php 逻辑训练小题目三(附我的答案)
- php 逻辑训练小题目四(附我的答案)
- PHP面试题系列一【附答案】
- 一个有意思的逻辑训练题目
- 转php面试题及我的答案(一)
- (转)几道C语言的题目(附答案)
- (转贴)PHP面试题系列一【附答案】
- (转贴)PHP面试题系列一【附答案】
- php面试题汇总一(基础篇附答案)
- 我的高级win32API作业(附我的答案)
- 75道逻辑题的题目和答案
- 【Java】逻辑思维训练整理的小题目
- 暑假训练(一) 通过的题目
- 我遇到的面试题(附答案)
- php面试题附答案
- 常见的php笔试题(附答案)搜集整理
- PHP Token(令牌)设计
- 安卓监听软键盘显示和隐藏事件
- HDOJ 1272.小希的迷宫
- Web站点由Win2003+IIS6迁移至64位Win2008+IIS7
- Storm记录级容错的基本原理
- php 逻辑训练小题目一(附我的答案)
- 【leetcode】Number of 1 Bits
- RT-Thread 学习笔记(十) --- 开启基于LWIP协议的网络功能
- 初识Dubbo 系列之6-Dubbo 配置
- Android—res\layout\addUser.xml: Invalid file name: must contain only [a-z
- 第二章2.30
- WEKA使用教程(经典教程转载)
- 阶乘之和
- Linux如何根据IP地址反查hostname