爱因斯坦的阶梯问题
问题描述:
设有一阶梯,若每步跨2阶,最后余1阶;若每步跨3阶,最后余2阶;若每步跨5阶,最后余4阶;若每步跨6阶,最后余5阶;当第步跨7阶时,正好达到阶梯顶。问共有多少级阶梯?
算法分析:
设阶梯数为n,这个n肯定是个奇数,这个奇数满足:n%2==1, n%3==2, n%5==4, n%6==5, n%7==0,所以:
代码如下:
View Code
1 #include <stdio.h>
2
3 int main(void)
4 {
5 int n = 3;
6
7 while(n)
8 {
9 if((n%2==1) && (n%3==2) && (n%5==4) && (n%6==5) && (n%7==0))
10 {
11 printf("%d", n);
12 break;
13 }
14 n += 2;
15 }
16
17 return 0;
18 }
输出结果:
119