一道考试题,应该怎么实现啊?

Busichong 2005-04-14 09:53:33
一个球从100m高度落下,每次落地后反跳回高度得一半,再落下,问它在第10次落地时共经过多少m?第十次反跳多高?? 这个用C++怎么写阿,一个朋友考试题目
...全文
419 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
52china 2005-04-14
  • 打赏
  • 举报
回复
我觉得应该这样吧。

int i = 0;
double h = 100;
double sum = 0;
while (i++ < 10)
{
sum += h*(1.5);
h /= 2.0;
}
sum -= h;
mydream7232 2005-04-14
  • 打赏
  • 举报
回复
#include<iostream.h>
using namespace std;
int main(void)
{
float h=100;
float sum=0;
int i=1;
for(i;i<=10;i++)
{
sum=h+sum;
h=h/2;
}
cout<<"最后一次H:"<<h<<"m"<<endl;
cout<<"总路程:"<<sum<<"m"<<endl;
system("pause");
return 0;
}
sharkabc 2005-04-14
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;

int main()
{
double sum = 0;
double h = 100;
for( int i = 0; i < 10; i++)
{
sum += h;
h /= 2;
}
cout << sum << endl;
cout << h << endl;
return 0;
}
sharkabc 2005-04-14
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;

int main()
{
double sum = 0;
double h = 100;
for( int i = 1; i <= 10; i++)
{
sum = sum + h;
h = h/2;
}
cout << sum << endl;
cout << h << endl;
return 0;
}
qhfu 2005-04-14
  • 打赏
  • 举报
回复
#include<iostream>
using namespace std;
int main()
{
int s = 100,h = 100;
for(int i = 1;i<10;i++)
{
h = h/2;
s += 2*h ;

}
cout<<s;
system("PAUSE");
}
andycpp 2005-04-14
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include <iostream>
#include <cstdlib>

using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
int n, s, temp;
cout<<"请输入球弹地的次数:";
cin>>n;
s = 100;
temp = 100;
for(int i(1); i<n; i++)
{
s += temp;
temp /= 2;
}
cout<<"共经过了"<<s<<"米"<<endl;
system("pause");
return 0;
}

pcboyxhy 2005-04-14
  • 打赏
  • 举报
回复
#include <iostream>
#include <cstdlib>
#include <cmath>

using namespace std;

int main(int argc, char *argv[])
{
cout<<(1.0f-pow(0.5f, 9.0f))*200+100<<endl;
cout<<50.0f/pow(2.0f, 9.0f)<<endl;
system("PAUSE");
return 0;
}
Maxwell 2005-04-14
  • 打赏
  • 举报
回复
楼上的,你的sum也应该用float。
Maxwell 2005-04-14
  • 打赏
  • 举报
回复
float d = 100;
float s = 0;

for (int i = 0; i <10; i++)
{
s += d;
d /= 2;
}

s是经过的m数,d是第十次反弹的高度。
yuchengliu 2005-04-14
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;

int main()
{
int sum = 0;
float h = 100;
for( int i = 1; i <= 10; i++)
{
sum = sum + h;
h = h/2;
}
cout << sum << endl;
cout << h << endl;
system("pause");
return 0;
}
SammyLan 2005-04-14
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int n;
float H;
cout<<"请输入开始高度:";
cin>>H;
cout<<"请输入弹起的次数:";
cin>>n;
float sum=H;
int q=1;
q=q<<(n-1);
sum+=2*H*(1-(float)1/q);
H=H/q/2;

cout<<"第"<<n<<"次着地经过的路程"<<sum<<endl;
cout<<"第"<<n<<"次弹起的高度"<<H<<endl;
system("pause");
return 0;
}
chenyec 2005-04-14
  • 打赏
  • 举报
回复
int a[10+1];
a[0] = 100;
for ( int i = 0; i < 10; i++ )
a[i+1] = a[i]/2+a[i];

SammyLan 2005-04-14
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int n;
float H;
cout<<"请输入开始高度:";
cin>>H;
cout<<"请输入弹起的次数:";
cin>>n;
float sum=H;


for(int i=2;i<=n;i++)
{
sum+=H;
H=H/2;
}
H=H/2;
cout<<"d第"<<n<<"次着地经过的路程"<<sum<<endl;
cout<<"第"<<n<<"次弹起的高度"<<H<<endl;
system("pause");
return 0;
}
SammyLan 2005-04-14
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int n;
float H;
cout<<"请输入开始高度:";
cin>>H;
cout<<"请输入弹起的次数:";
cin>>n;
float sum=H;
H=H/2;
for(int i=2;i<=n;i++)
{
sum+=H*2;
H=H/2;
}
cout<<"经过的总路程"<<sum<<endl;
cout<<"第"<<n<<"次弹起的高度"<<H<<endl;
system("pause");
return 0;
}
jacksonwj 2005-04-14
  • 打赏
  • 举报
回复
#include <iostream>

using namespace std;

int main()
{
float h = 100;
int sum = 0;

for( int i = 0; i < 10; i++)
{
sum = sum + h;
h = h/2;
}
cout << endl << " 总距离是:" << sum << endl;
cout << endl << " 此时的高度是:" << h << endl;

system("pause");

return 0;
}
linwujun 2005-04-14
  • 打赏
  • 举报
回复
i=0写成1了。呵呵!!
linwujun 2005-04-14
  • 打赏
  • 举报
回复
弹球下降和弹起是双倍路程。

double sum=0;
double h=100;
cout<<"请输入弹球次数"<<endl;
cin>>n;
for(int i=1;i<n;i++)
{
sum+=h;
h/=2.0;
sum+=h;
}
sum-=h;
cout<<n<<"次后弹球弹起高度为"<<h<<endl;
cout<<n<<"次落地时经过路程是"<<sum<<endl;
pugang 2005-04-14
  • 打赏
  • 举报
回复
double last_time ,this_time,count ;
last_time=100;
count=-100;
for(i=0;i<10;i++)
{
count+=(2*last_time);
last_time=last_time/2;
this_time=last_time;
}
cout<<last_time<<" "<<this_time;
loveme_001 2005-04-14
  • 打赏
  • 举报
回复
忘了说一下 这个n你赋值10就是第10次的了 这个更能代表一般性吧~
loveme_001 2005-04-14
  • 打赏
  • 举报
回复
我觉得前面有几种都错了 因为那个sum他少算了一部分~我觉得我的应该没错~
小弟刚学C++ 编程水平有限!
#include<iostream.h>
void main()
{
int n;
cout<<"Enter n:";
cin>>n;

int i;
float sum=0;
float h=100.00;
for(i=1;i<=n;i++)
{
sum+=2*h;
h=h/2;
}
cout<<"h="<<h<<endl;
cout<<"sum="<<sum-100<<endl;
}
加载更多回复(1)

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧