问题:有一座八层灯塔,每层的灯数都是其上一层的一倍,这座灯塔共有765盏灯,编程求出最上层和最下层的灯数
思路:1.本例通过对n的穷举,找出符合条件的n值
2.计算灯塔总数时,我们可以算出2楼到8楼的灯的总数,再将计算出的和加上1楼灯的数量
3.也可以先把1楼的灯数赋给sum,再把2到8楼的灯累加起来
运行结果如下
参考代码如下
#include<stdio.h>
#include<stdlib.h>
int main ()
{
int n = 1, m, sum, i;
while (1)
{
m = n;
sum = 0;
for (i = 1; i < 8; i++)
{
m = m * 2;
sum += m;
}
sum += n;
if (sum == 765)
{
printf ("the first floor has %d\n",n);
printf ("the eight floor has %d\n",m);
break;
}
n++;
}
return 0;
}