爱因斯坦数学题
爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,则最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。
#include<iostream> using namespace std; int main() { int x = 1; int find = 0; while (find == 0) { if (x % 2 == 1 && x % 3 == 2 && x % 5 == 4 && x % 6 == 5 && x % 7 == 0) { cout << x << endl; find = 1; } x++; } return 0; }
另一种方法,这个阶梯数肯定是7的倍数。
#include<iostream> using namespace std; int main() { int x = 7; int a = 0; for (int i = 0; i <= 100; i++) { if ((x % 2 == 1) && (x % 3 == 2) && (x % 5 == 4) && (x % 6 == 5) && (x % 7 == 0))//如果符合这个数 { a = x;//这里让a=x,后面会输出 break;//if如果成立,跳出循环,a的值也会改变 } x = 7 * (i + 1);//if没有成立进入下一个循环,x的值也会成为下一个7的倍数 } if (a != 0)//a不等于0,说明上面if成立了 { cout << a << endl;//输出a的值 } return 0; }