问题标题: 酷町堂:4385

0
0
已解决
刘艺凡
刘艺凡
资深守护
资深守护

小P研制了一款火箭推进器,但是,这个火箭推进器存在一个缺陷:每一次喷射都达不到上次推进距离的98%。
已知小P的火箭推进器第一次可以推进2千米,接下来的每一次推进距离都只有上一次距离的98%。
现在小P想知道,如果要跑到距离x千米的地方,火箭推进器需要推进多少次呢。
请你编程解决这个问题。

我的代码:30分


0
已采纳
王子桐
王子桐
高级光能
高级光能

同意楼上,

 

王子桐在2021-04-14 20:33:33追加了内容

	cin>>d;
		
		sum+=a;
		cnt++;
	
	do{
		a*=0.98;
		sum+=a;
		cnt++;
	}
	while(sum<d);
		
	
	cout<<cnt;


核心

王子桐在2021-04-14 20:35:50追加了内容

其实也可以用while循环,不过我认为do—while更简单。

王子桐在2021-04-14 20:36:35追加了内容

望采纳

王子桐在2021-04-14 20:39:07追加了内容

double a=2,sum=2,cnt=1,d;
    cin>>d;

	do{
		a*=0.98;
		sum+=a;
		cnt++;
	}
	while(sum<d);
		
	
	cout<<cnt;
	return 0;
}

也可以这样(跟李明昕 一样)

望采纳!!!

0
李明昕
李明昕
资深守护
资深守护

错误:

(1)b没有赋值

其他的没看出来啥

因为我的思路和你的不一样

我的代码和你不一样的地方:

a赋值成2(因为是double所以不用加.0),b赋值成2,c赋值成1

(相当于先算第一次推进)定义变量d

剩下的一样啦

我要回答