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