已知一球从高空落下时,每次落地后反弹至原高度的四分之一再落下。编写一程序,从键盘输入整数n和m,求该球从n米的高空落下后,第m次落地时共经过的路程以及第m次落地后反弹的高度,并输出结果。
并且输出结果怎样才能四舍五入?
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double s,m,n,i;
cin>>n>>m;
if (m==1)
{
cout<<setprecision(2)<<n<<endl;
cout<<setprecision(2)<<n/4<<endl;
}
else
{
s=n;
for (i=2;i<=m;i++)
{
s=s+n/2;
n=n/4;
}
n=n/4;
cout<<fixed<<setprecision(2)<<s<<endl;
cout<<fixed<<setprecision(2)<<n<<endl;
}
}
round
Example#include <iostream>
#include <iomanip>
#include <cmath>
#include <limits>
int main()
{
const long double pi = std::acos(-1.L);
std::cout << "default precision (6): " << pi << '\n'
<< "std::setprecision(10): " << std::setprecision(10) << pi << '\n'
<< "max precision: "
<< std::setprecision(std::numeric_limits<long double>::digits10 + 1)
<< pi << '\n';
}
Output:
default precision (6): 3.14159
std::setprecision(10): 3.141592654
max precision: 3.141592653589793239