7月24日
今天已经24号了,我们的科技夏令营也快结束了,时间过得好快。。。
今天刷了一晚上的题 一道题令我印象深刻啊!!!
这个题目叫《球弹跳高度的计算》
一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。
编程计算气球在第10次落地时,共经过多少米? 第10次反弹多高?
请看我的错误解法
#include
<bits/stdc++.h>
#include
<cstdio>
using
namespace
std
;
int
main
()
{
double
h
,
sum
=
0
;
scanf
(
"%lf"
,&
h
);
for
(
int
i
=
1
;
i
<=
10
;
i
++)
{
sum
=
sum
+
h
+
h
/
2
;
h
=
h
/
2
;
}
printf
(
"%g
\n
"
,
sum
);
printf
(
"%g
\n
"
,
h
);
return
0
;
}
经过我几次笔算后 我发现我的程序并没有错误
后来 经过老师的仔细审查 原来循环多了
正确解法如下
#include
<bits/stdc++.h>
#include
<cstdio>
using
namespace
std
;
int
main
()
{
double
h
,
sum
=
0
;
scanf
(
"%lf"
,&
h
);
for
(
int
i
=
1
;
i
<=
9
;
i
++)
{
sum
=
sum
+
h
+
h
/
2
;
h
=
h
/
2
;
}
sum
=
sum
+
h
;
h
=
h
/
2
;
printf
(
"%g
\n
"
,
sum
);
printf
(
"%g
\n
"
,
h
);
return
0
;
}
我就笑笑!