问题 L: C语言实习题三——2.爱因斯坦阶梯问题
时间限制: 1 Sec 内存限制: 128 MB
题目描述
爱因斯坦阶梯问题。设有一阶梯,每步跨2阶,最后剩1阶;每步跨3阶,最后剩2阶;每步跨5阶,最后剩4阶;每步跨6阶,最后剩5阶;每步跨7阶,正好到阶梯顶。问满足条件的最少阶梯数是多少。
输入
无
输出
阶梯数
样例输入
无
样例输出
119
提示
① 设一个变量x作为循环控制变量也代表阶梯数,让其从1开始每次增1,此时只能用do –while或while循环;
② 判断x何时满足所有给定条件,此时的x即为所求阶梯数。
提示:循环体内必须有能使x发生变化的语句,且可在该语句处设置断点,进行观察。
代码实现
#include <stdio.h>
// 爱因斯坦阶梯问题。设有一阶梯,
//每步跨2阶,最后剩1阶;每步跨3阶,最后剩2阶;
//每步跨5阶,最后剩4阶;每步跨6阶,最后剩5阶;
//每步跨7阶,正好到阶梯顶。问满足条件的最少阶梯数是多少。
int main() {
int i = 0;
for (i = 7; ; i++) {
if (i % 2 == 1 && i % 3 == 2 && i % 5 == 4 && i % 6 == 5 && i % 7 == 0) {
break;
}
}
printf("%d\n", i);
return 0;
}