统计思想:Count++For循环

Demo1.

需求:统计”水仙花数”共有多少个

分析:

  A:首先必须知道什么是水仙花数 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。

    举例:153就是一个水仙花数。

    153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153

  B:定义统计变量,初始化值是0

  C:三位数告诉了我们范围,用for循环就可以实现

  D:获取每一个三位数的个,十,百的数据

  E:按照要求进行判断

  F:如果满足要求就计数。

class CountDemo {
    public static void main(String[] args) {
        //定义统计变量,初始化值是0
        int count = 0;
        
        //三位数告诉了我们范围,用for循环就可以实现
        for(int x=100; x<1000; x++) {
            //获取每一个三位数的个,十,百的数据
            int ge = x%10;
            int shi = x/10%10;
            int bai = x/10/10%10;
            
            //按照要求进行判断
            if(x == (ge*ge*ge+shi*shi*shi+bai*bai*bai)) {
                //如果满足要求就计数。
                count++;
            }
        }
        
        System.out.println("水仙花数共有"+count+"个");
    }
}

 

Demo2.

我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。
请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?

分析:
  A:定义一个统计变量,默认值是0
  B:最高山峰是珠穆朗玛峰:8848m这是最终的厚度
    我现在有一张足够大的纸张,厚度为:0.01m这是初始厚度
  C:我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
    折叠一次有什么变化呢?就是厚度是以前的2倍。
  D:只要每次变化的厚度没有超过珠穆朗玛峰的高度,就折叠,统计变量++
  E:输出统计变量。

class CountDemo {
    public static void main(String[] args) {
        //定义一个统计变量,默认值是0
        int count = 0;
        
        //最高山峰是珠穆朗玛峰:8848m这是最终的厚度
        //我现在有一张足够大的纸张,厚度为:0.01m这是初始厚度
        //为了简单,我把0.01变成1,同理8848就变成了884800
        int end = 884800;
        int start = 1;
        
        while(start<end) {
            //只要每次变化的厚度没有超过珠穆朗玛峰的高度,就折叠,统计变量++
            count++;
            
            //折叠一次有什么变化呢?就是厚度是以前的2倍。
            start *= 2;
            
            System.out.println("第"+count+"次厚度是"+start);
        }
        
        //输出统计变量。
        System.out.println("要叠"+count+"次");
    }
}

 

posted @ 2019-07-07 21:02  法克Frank  阅读(1240)  评论(0编辑  收藏  举报