爱因斯坦的阶梯问题

问题描述:
设有一阶梯,若每步跨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

posted @ 2011-10-13 12:08  jeff_nie  阅读(847)  评论(0编辑  收藏  举报