以下程序功能是,求共有多少步台阶
问题描述:
以下程序功能是,求共有多少步台阶
设有一台阶,每步跨2阶,最后余1阶;每步跨3阶,最后余2阶;每步跨5阶,最后余4阶;每步跨6阶,最后余5阶;每步跨7阶,正好到阶梯顶,填空完成程序:
main()
{int ladders=7;
while(ladders%3!=2||ladders%5!=4||ladders%6!=5)
(填空);
printf("flight of stairs=%d\n",ladders);
}
答案是ladders++ ,觉得这个程序本身就有问题,分析一下!
还有一个我经过测试,得出来的结果是29,显然满足%3==2;%5==4,;%6==5 为什么编程时写成“!=”呢?是不是跟“||”有关呢?
答
!=意思是不等于
我们来分析:while(ladders%3!=2||ladders%5!=4||ladders%6!=5)
设A条件为:ladder除以3余2
B:除以5余4
C:除以6余5
D:被7整除
那么while后括号里的意思是:(非A)或(非B)或(非C)
转换一下说法:非(A且B且C)
所以跳出while循环的条件:把上一句的非去掉,即A且B且C
就是说,当A,B C有一不满足的时候继续while循环
(如果都满足的话那么ladder即为所求,应该跳出循环)
填:ladders+=7 ,作用是始终让D条件满足