HDU - 2002 计算球面积 难度:C++入门 复杂度:简单

同本期第四题一样,极其简单。套用球的面积公式即可。

注意本题的Hint:规定π \piπ的值为3.1415927。此外本题为“多组输入数据”。 不过输出结果要进行“保留三位小数”的处理。

怎么处理?

令结果对0.001取余后四舍五入即可。 取余运算之只能在左右都为整数的时候使用,所以不能这样取余。但后来我还是用比较曲折的方式写出了个貌似可用的“保留三位小数函数”:

double rounding(double x)//保留三位小数函数
{
	if (int(10000 * x) % 10 >= 5)
		return double(int(1000 * x) + 1) / 1000;
	else
		return double(int(1000 * x)) / 1000;
}

虽然经过测试这个函数算是可以用的,但用它写成的代码仍总是Wrong Answer。 不得已求助他人才得知C++自带的工具已提供了极为简单的方法处理输出精度问题。 保留三位小数:cout<<fixed<<setprecision(3)<<要输出的double数;即可

fixed的作用是按一般形式输出小数而不是用科学计数法;

在前面有fixed的情况下,setprecision(n)即保留n位小数(没有fixed时,setprecision函数作用为保留n位有效数字。使用这一函数需要头文件iomanaip。)

#include<iostream>
#define PI 3.1415927
#include<iomanip>
using namespace std;
int main()
{
	double R;
	while (cin >> R)
		cout << fixed << setprecision(3) << double(4.0 / 3 * PI * R * R * R) << endl;
	return 0;
}

转载于:https://my.oschina.net/u/4035395/blog/3011204

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值