Java笔试题--爱因斯坦台阶问题

1、题目

爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后一阶也不剩。请问该阶梯至少有多少阶。编写一个Java程序解决该问题。

2、解题思想

从上面的描述中,可以把这个问题用数学方程式的形式表达出来,其具体形式如下: 
x%2=1 
x%3=2 
x%5=4 
x%6=5 
x%7=0 
从上面的表达式中不难看出,此方程x的解应该有无穷个,但这里要求的是那个最小的解。这个解一定是7的倍数,因为x%7=0,因此就用7的倍数依次与2、3、5、6进行取模运算,如果都符合了上面表达式的条件,那么这个数就是本题的答案。

3、我的代码(如果是0)则在700范围内不存在

public static void main(String args[]) {
        int res=0;
        int x=7;
        for(int i=1;i<=100;i++) {
            if(x%2==1 && x%3==2 && x%5==4 && x%6==5) {
                res=x;
                break;
            }else {
                x=7*(i+1);
            }
            
        }
        System.out.println(res);
        
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值