爱因斯坦的数学题
爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最后剩一阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问在1~N内,有多少个数能满足?
由题意知该阶梯数为7的倍数,对6求余为5,对5求余为4,对4求余为3,对3求余为2,对2求余为1,我们只需通过一个for循环从7开始穷举得到符合条件的结果即可。
#include<iostream>
using namespace std;
int main()
{
int sum=0,N;//sum记录符合条件的个数,N表示寻找范围的上限
cin>>N;
for(int i=7;i<N;i++)
{
if(i%7==0&&i%6==5&&i%5==4&&i%4==3&&i%3==2&&i%2==1)
{
sum++;
cout<<i<<endl;
}
}
cout<<"则在1~"<<N<<"之间符合条件的数有"<<sum<<"个"<<endl;
return 0;
}
运行结果如下: