关于循环的疑问
最近看到一个题目:爱婴斯坦阶梯问题:开始写代码是这样的:
/*原始题目是:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;
若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;
只有每步上7阶,最后刚好一阶也不剩。*/
#include<stdio.h>
int main()
{
int i=1, num;
while (i<1000){
num = 7*i;
if( (num%6==5&&num%5==4&&num%3==2&&num%2==1)==1)
printf("台阶步数为%d\n",num);
else i++;
};
printf("计算结束\n");
return 0;
}
程序进入无限循环!!没想明白是怎么回事?
后来又更改了下,程序如下:
/*原始题目是:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;
若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;
只有每步上7阶,最后刚好一阶也不剩。*/
#include<stdio.h>
int main()
{
int i=1, num;
while (i<1000){
num = 7*i;
if( (num%6==5&&num%5==4&&num%3==2&&num%2==1)==1)
printf("台阶步数为%d\n",num);
else ;
i++;
};
printf("计算结束\n");
return 0;
}
这样就可以算出来结果了。
初学C不久,有没有前辈给解释下!在此谢谢了!!