1311 - C语言程序设计教程(第三版)课后习题6.9
时间限制 : 1 秒
内存限制 : 128 MB
一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。它在第N次落地时反弹多高?共经过多少米?保留两位小数
题目输入
M N
题目输出
它在第N次落地时反弹多高?共经过多少米?保留两位小数,空格隔开,放在一行
输入/输出样例
输入格式
1000 5
输出格式
31.25 2875.00
C语言解答
#include<stdio.h> #include<math.h> double total(double m,int n) { if(n==1) return m; else return total(m,n-1)+m/pow(2,n-2); } int main() { int i,j; int n; double m; scanf("%lf%d",&m,&n); double gaodu=m/pow(2,n); double zong=total(m,n); printf("%.2lf %.2lf",gaodu,zong); }
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; }