求助!这道题怎么编
有一个八层灯塔,每层所点灯数都等于上一层的两倍,一共有765盏灯,求塔底灯数?
不知道
不知道你想用什么方法做,做这样的题方法很多。不过建议用递归调用。
/* 此程序有些简陋,算法也不高明,希望诸位多给批评,谢谢。 */ #include<stdio.h> int deng(int n) { int i=1; /*设第一层灯数为1*/ while(1) { if((i+2*i+4*i+8*i+16*i+32*i+64*i+128*i)==n) break; /*如果满足每一层是上层的2倍,且总数为765的条件 就跳出循环*/ ++i; } return i; /*返回i值*/ } int main(void) { int n=765; /*设塔灯总数为765*/ n=deng(n); /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~先把n值传递给函数形参,? 再用它来接收函数返回值*/ printf("第八层的灯数为:%d\n",128*n); /*把函数返回的值(也就是第一层塔灯 个数)乘以128(第八层是第一层的 128倍),就是第八层的塔灯个数*/ getch(); }