有一个8层灯塔,每层所点灯数都等于该层上一层的两倍,一共有765盏灯,求塔底的灯数。C++ 程序
答案:5 悬赏:80 手机版
解决时间 2021-02-05 22:44
- 提问者网友:人傍凄凉立暮秋
- 2021-02-05 08:58
有一个8层灯塔,每层所点灯数都等于该层上一层的两倍,一共有765盏灯,求塔底的灯数。C++ 程序
最佳答案
- 五星知识达人网友:时间的尘埃
- 2021-02-05 10:13
// note:your choice is c++ ide
#include
#include
using namespace std;
int main()
{
//第一,穷举法
int i,j;
int n,s;
for(i=0;i<765;i++)//穷举的范围可以进一步缩小,交给你了哦
{
s=0;
n=i;//塔底盘子数
for(j=0;j<8;j++)
{
s=s+n;//计算盘子总数
n=n/2;
}
if(s==765) {cout<<"方法一:第八层盘子数为:"< }
//第二,数学方法
//设第八层为x个盘子,那么总的盘子数为:
//x+x/2+x/4+x/8+....+x/(2的n-1次方)(n为层数)
//解方程即可
double m=0;
for(j=0;j<8;j++)
{
m=m+1/pow(2,j);//计算x的系数的值
}
cout<<"方法二:第八层盘子数为:"<<(765.0/m)<
return 0;
}
#include
#include
using namespace std;
int main()
{
//第一,穷举法
int i,j;
int n,s;
for(i=0;i<765;i++)//穷举的范围可以进一步缩小,交给你了哦
{
s=0;
n=i;//塔底盘子数
for(j=0;j<8;j++)
{
s=s+n;//计算盘子总数
n=n/2;
}
if(s==765) {cout<<"方法一:第八层盘子数为:"< }
//第二,数学方法
//设第八层为x个盘子,那么总的盘子数为:
//x+x/2+x/4+x/8+....+x/(2的n-1次方)(n为层数)
//解方程即可
double m=0;
for(j=0;j<8;j++)
{
m=m+1/pow(2,j);//计算x的系数的值
}
cout<<"方法二:第八层盘子数为:"<<(765.0/m)<
}
全部回答
- 1楼网友:北方的南先生
- 2021-02-05 12:45
这个程序没问题了,挺简单的...
#include <iostream>
using namespace std;
void main()
{
int s,m,i=1;;
while(s!=765)
{
s=i;
m=i;
for(int j=1;j<8;j++)
{
m=2*m;
s=s+m;
}
i++;
}
cout<<"底层灯的数目:"<<m<<endl;
}
- 2楼网友:天凉才是好个秋
- 2021-02-05 11:38
// note:your choice is c++ ide #include #include using namespace std; int main() { //第一,穷举法 int i,j; int n,s; for(i=0;i<765;i++)//穷举的范围可以进一步缩小,交给你了哦 { s=0; n=i;//塔底盘子数 for(j=0;j<8;j++) { s=s+n;//计算盘子总数 n=n/2; } if(s==765) {cout<<"方法一:第八层盘子数为:"< } //第二,数学方法 //设第八层为x个盘子,那么总的盘子数为: //x+x/2+x/4+x/8+....+x/(2的n-1次方)(n为层数) //解方程即可 double m=0; for(j=0;j<8;j++) { m=m+1/pow(2,j);//计算x的系数的值 } cout<<"方法二:第八层盘子数为:"<<(765.0/m)< return 0; }
- 3楼网友:duile
- 2021-02-05 11:10
设最顶层灯数为i,则最底层为128i
int main()
{
int i,t,n;
for(i=0;t!=765;i++)
t=i+2i+4i+8i+16i+32i+64i+128i;
n=128*i;
cout<<"最底层的灯数为<<n<<endl;
return 0;
}
- 4楼网友:青灯有味
- 2021-02-05 10:55
LZ的意思是8层共765盏把?
思路与一楼差不多,设第一层有a盏,那第二层就有2a盏,以此类推;
a+2a+4a+8a+16a+32a+64a+128a=(2*128-1)a=255a;
所以a=3;
程序如下:
#include <iostream>
using namespace std;
int main()
{
int a;
a=765.0/255;
cout<<"最底层有"<<128*a<<"盏灯。"<<endl;
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯