1423 - C语言-弹球
时间限制 : 1 秒
内存限制 : 128 MB
一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 保留两位小数
题目输入
M N
题目输出
它在第N次落地时反弹多高?共经过多少米? 保留两位小数,空格隔开,放在一行
输入/输出样例
输入格式
1000 5
输出格式
31.25 2875.00
C语言解答
int main(int argc, char* argv[]) { double m,n,sum,i; while(~scanf("%lf%lf",&m,&n)) { sum=m; for(i=0;i<n;i++) { sum+=m; m*=1.0/2; } sum-=2*m; printf("%.2lf %.2lf\n",m,sum); } return 0; }
C++解答
#include<iostream> #include<cstdio> using namespace std; int main() { double n,sum; int m; cin>>n>>m; sum=-n; for (int i=1; i<=m; i++) { sum+=2*n; n/=2; } printf("%.2lf %.2lf\n",n,sum); return 0; }