PTA 7-7 快速求和
请编写程序,输入整数 n,快速计算:
输入格式
n
输出格式
s
要求:输出 6 位小数,末位四舍五入。
输入样例1
4
输出样例1
0.800000
输入样例2
300
输出样例2
0.996678
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
代码:
#include<stdio.h>
int main()
{
float n;
double s;//这里必须使用double以上的数据类型,否则会导致精度丢失
scanf("%f",&n);
s=1.0-1.0/(n+1);//由数学公式得
printf("%.6f\n",s);//结果说要保留6位小数
return 0;
}
解题思路
- 根据题目要求,定义两个浮点数n、s
- 根据题目及数学公式( 1 - 1 / (n + 1) )求得计算结果
- 题目中要求输出6位小数( “%.6f\n” )
- 考虑精度问题,float精度是有限的,高精度运算尽量使用double