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);
        
    }

你可能感兴趣的:(java语言学习)