爱因斯坦的阶梯 java,爱因斯坦阶梯

问题:在你面前有一条长长的阶梯。如果你每步跨2阶,那么最后剩下1阶;如果你每步跨3阶,那么最后剩2阶;如果你每步跨5阶,那么最后剩4阶;如果你每步跨6阶,那么最后剩5阶;只有当你每步跨7 阶时,最后才正好走完,一阶也不剩。请问这条阶梯至少有多少阶?

分析:所求的阶梯数应比 2、3、5、6 的公倍数(即 30 的倍数)小 1,并且是 7 的倍数。因此只需从 29、59、89、119、……中找7 的倍数就可以了。可以得到答案为 119 阶

c代码实现如下:

#include

main()

{

int num=7;

while(1)

{

if(num%2==1&&num%3==2&&num%5==4&&num%6==5&&num%7==0)break;

else ++num;

}

printf("爱因斯坦的阶梯数为:%dn",num);

}

注:上面的&&不能理解为||实现,&&是和的意思,||为或的意思。||时即其中有一个条件成立,表达式就成立,运行的结果为7。

也可将上面的代码改为如下代码实现:

#include

main()

{

int num=7;

while((num%2==1&&num%3==2&&num%5==4&&num%6==5&&num%7==0))

{

num+=7;

}

printf("爱因斯坦的阶梯数为:%dn",num);

}

这样代码更精炼。直接将条件放到while循环条件语句里。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值