1.题目
有一座八层灯塔,每层的灯数都是其上一层的一倍,这座灯塔共有765盏灯,求出最上层与最下层的灯数。
2.代码
#include<stdio.h>
int main(void)
{
int z = 1;
int y;
int sum = 0;
int i = 1; //定义变量,i为层数,从高到低。y为最高层的灯塔数量。sum为依次叠加之后的灯塔总数。z为所设x的倍数,依次增加。
while (i < 9) //计算所设X的变量总数
{
sum += z;
z = z * 2;
i++;
}
y = 765 / sum;//进行计算
printf("最高层灯塔数量为:%d\n", y);
printf("最低层灯塔数量为:%d\n", z / 2 * y);
return 0;
}
3.个人见解
由题可得,设第八层为x
则,依次累加,总数为255x。即255x=765
所以,求得x为3。即最上层灯塔为3,最下层灯塔为384