求解爱因斯坦数学题

题目:爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最后剩一阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问在1到N内,有多少个数能满足?
解题思路:此题与筐里鸡蛋问题属于一类题目,假设有最少有i个台阶,且假设台阶数小于10000(如果无解,可再增大),利用for循环,取模运算,即可求解;求得台阶最少数为119个。
代码如下:

public class EinMath {
    public static void main(String[] args) {
        int n=10000;//假设台阶数不超过10000个
        System.out.println("假设当前台阶数少于:"+n+"个");
        for (int i = 7; i <n; i++) {
            if (i%7==0) {//每次跨7阶,最后才正好一阶不剩
                if (i%6==5) {//若每步跨6阶则最后剩5阶
                    if (i%5==4) {//若每步跨5阶,则最后剩4阶
                        if (i%3==2) {	//若每步跨3 阶,则最后剩2阶
                            if (i%2==1){//若每步跨2阶,则最后剩一阶
                                System.out.println("当前台阶最少数:"+i);
                                break;
                            }
                        }
                    }
                }
            }
        }
        System.out.println("*****计算完毕!*****");
    }
}

求解爱因斯坦数学题_第1张图片

你可能感兴趣的:(算法,java)