游客 Signup | Login
中文 | En

1311 - C语言程序设计教程(第三版)课后习题6.9

一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。它在第N次落地时反弹多高?共经过多少米?保留两位小数

Input

M N

Output

它在第N次落地时反弹多高?共经过多少米?保留两位小数,空格隔开,放在一行

Examples

Input

1000 5

Output

31.25 2875.00

Solution 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);
 } 

Solution 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;
}
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题