算法题目:有一个八层灯塔,每层的灯数都是上一层的2倍,共有765盏灯,编程,求最上层的灯和最下层的灯数。
编程思路分析
编程思路:
1、编程实现1-8层灯数;
2、显示最下层灯数量和最上层灯数量。
程序范例
int main()
{
/*n:八楼灯的数量假设为1 m:楼层的变化灯的数量 sum:灯的总数量 */
int n = 1,m,sum ,i;
while(1)
{
m = n; //m存储八楼灯的数量
/*如果判断结果八个楼层的灯的数量大于或者小于765则将灯的总数清零*/
sum = 0;
for(i = 1;i < 8; i++)
{
m = m * 2;//每层的灯数都是上一层的2倍
sum += m;//计算出除了一楼外灯的数量
}
sum += n;//加上一楼灯的数量
if(sum == 765)
{
printf("输出八楼灯的数量:%drn",n);
printf("输出一楼灯的数量:%drn",m);
break;
}
n++;//灯的数量加1
}
}
程序运行结果案例: