8层灯塔 共765盏灯
有一个8层灯塔,每层的灯数都是上一层的2倍,共有765盏灯。编程求最上层的灯数:
1 #include<stdio.h> 2 #include <math.h> 3 4 int main(int argc, char const *argv[]) 5 { 6 /*pow() 返回值的数据类型为 double*/ 7 8 double c = 0; 9 10 for (int i = 0; i <= 7; ++i) 11 { 12 c += pow(2,i); 13 } 14 15 printf("顶层:%.f\n",765/c); 16 printf("底层:%.f\n",(765/c)*pow(2,7)); 17 return 0; 18 }
分析:
设顶层总共有 x 盏灯 第二层有 x·2^1 盏 第三层有 x·2^2 盏 ......第八层有 x·2^7 盏
共 : x·(2^0+2^1+2^2·····+2^7) = 765 盏
x = 765 / (2^0+2^1+2^2·····+2^7)