【实例描述】
爱因斯坦问题是假设某人走一个台阶,如果每步走两级,最后只剩一级,如果每步走三级,最后剩两级,如果每步走四级,最后剩三级,如果每步走五级,最后剩四级,如果每步走六级,最后剩五级,如果每步走七级,则一个也不剩。本实例求出1000以内符合该条件的数字。
【实现过程】
本实例抽象为数学问题是:总的台阶数分别对2、3、4、5、6、7取余的结果是1、2、3、4、5、0。
代码如下:
#include<iostream>
using namespace std;
bool Is_right(int n)
{
for(int i=1;i<7;i++)
{
if(i==6)
{
if(n%(i+1)!=0)
return false;
}
else
{
if(n%(i+1)!=i)
return false;
}
}
return true;
}
void main()
{
cout<<"---------爱因斯坦台阶-----------"<<endl;
cout<<"1000以内属于爱因斯坦台阶数字为:"<<endl;
int max=1000;
while(max)
{
if(!Is_right(max))
{}
else
cout<<max<<end;
max--;
}
}