0
点赞
收藏
分享

微信扫一扫

寒假习题训练营Day2 1.编程求 1~10000 之间的所有“完全数”,完全数是该数的所有因子之和等于该数的数。2.猴子吃桃问题。

Greatiga 2022-02-19 阅读 97
java

目录

1.编程求 1~10000 之间的所有“完全数”,完全数是该数的所有因子之和等于该数的数。

2.猴子吃桃问题。


1.编程求 1~10000 之间的所有“完全数”,完全数是该数的所有因子之和等于该数的数。

例如,6 的因子有 1、2、 3,且 6=1+2+3,所以 6 是完全数。

package winterHolidayHomework;

//编程求 1~10000 之间的所有“完全数”,完全数是该数的所有因子之和等于该数的数。
//例如,6 的因子有 1、2、3,且 6=1+2+3,所以 6 是完全数。
public class Day2_1 {
    public static void main(String[] args) {
        int num = 0;
        for (int i = 1; i <= 10000; i++) {//1~10000 之间的数
            for (int j = 1; j < i; j++) {//验证对应的i是不是完全数
                if (i % j == 0){
                    num += j;//如果j是这个i的因子就把j加到num里面
                }
            }

            if (i == num ){
                System.out.println("数字" + i + "是完全数~");
            }
            num = 0;//清零
        }
    }
}

2.猴子吃桃问题。

猴子第一天摘下若干个桃子,当时就吃了一半,还不过瘾,就又吃了一个。第二天又将剩下的桃 子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第 10 天在想吃的时候就剩一个桃子了,求第 一天共摘下来多少个桃子?

package winterHolidayHomework;

public class Day2_2 {
    public static void main(String[] args) {
        //逆向思维:第10天1个,那么第9天=(第10天的桃子+1)* 2 ……
        int total = 1;
        int day = 10;
        for (int i = 10; i > 0; i--) {
            System.out.println("第"+day+"天,有桃子"+total+"颗");
            total = (total+1) * 2;
            day--;
        }
    }
}

本小节完^_^

举报

相关推荐

求10000以内的所有完全数

0 条评论