爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩
【分析】我们假设最后的阶梯数是n。
每步上2阶,最后剩1阶,可知 n 除以 2 余数是 1。
每步上3阶,最后剩2阶,可知 n 除以 3 余数是2 。
其余可知: n 除以 5 余数是 4 , n除以 6 余数是 5, n 除以 7余数是 0;
你可能立马就能想到,循环查找符合以上条件的数字
#include <stdio.h>
int main()
{
int n = 1;
while (!(n % 2 == 1 && n % 3 == 2 && n % 5 == 4 && n % 6 == 5 && n % 7 == 0))
{
n ++;
}
printf("%d\n", n);
return 0;
}
我们从1开始一个一个的找结果是不是很麻烦,想到最后的结果一定满足是7的倍数,我们改成每次加7;
#include <stdio.h>
int main()
{
int n = 7;
while (!(n % 2 == 1 && n % 3 == 2 && n % 5 == 4 && n % 6 == 5 && n % 7 == 0))
{
n += 7;
}
printf("%d\n", n);
return 0;
}