A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马一号 中级黑马   /  2016-6-15 22:01  /  456 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*
  2. 有一个八层灯塔,每层的灯数都是上层的一倍,共有765盏灯,编程求最上层和最下层的灯数?

  3. */

  4. class Lighthouse {
  5.         public static void main(String[] args){
  6.                 for (int y = 1; true; y++) {  //使用for循环使最上层灯数从1开始递增
  7.                         int sum = 0;  //定义一个数sum存储变化的和,并且每次最上层灯数变化,sum归零
  8.                         for (int x = 1; x <= Math.pow(2,7); x*=2){   //内循环运行8次,x为2^0到2^7,每层灯塔数就是y*x
  9.                                 sum = sum + y*x;  //将每层灯塔数累加到sum中
  10.                         }
  11.                         if (sum == 765) { //判断总灯数是否等于765,如果等于就打印最上层和最下层灯数,并且使用break跳出循环
  12.                                 System.out.println("最上层的灯数是:" + y + "最下层的灯数是:" + y*Math.pow(2,7));
  13.                                 break;
  14.                         }       
  15.                 }
  16.         }
  17. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马