爱因斯坦台阶问题

【实例描述】

  爱因斯坦问题是假设某人走一个台阶,如果每步走两级,最后只剩一级,如果每步走三级,最后剩两级,如果每步走四级,最后剩三级,如果每步走五级,最后剩四级,如果每步走六级,最后剩五级,如果每步走七级,则一个也不剩。本实例求出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--;
	}
}

 

转载于:https://www.cnblogs.com/0405mxh/p/10133355.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值