爱因斯坦数学题

发布时间 2023-04-20 21:29:09作者: 祝我好運

爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨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;
}