本文共 948 字,大约阅读时间需要 3 分钟。
Given an integer n, we only want to know the sum of 1/k^2 where k from 1 to n.
There are multiple cases.
For each test case, there is a single line, containing a single positive integer n. The input file is at most 1M.
The required sum, rounded to the fifth digits after the decimal point.
1
2 4 8 15
1.00000
1.25000 1.42361 1.52742 1.58044
给出K值,然后输出1 / x^2的和 (x取值从1到k)
因为题目并没有给出k的范围,所以可能会给出很大很大很大的数!
所以肯定需要用字符数组先接收这个很大很大很大的k
然后注意:题目要求结果保留小数点后5位就可以
我们可以知道当k>=某个数之后,小数点后五位的数都不会再变了
我试出来的那个数是110292,所有大于等于110292的数。输出固定为1.64493
所以为了准确,当一个数位数>=7位,就不必再计算,输出都为1.64493.
#include#include #include #include using namespace std; const int N=1e6+5; //1000005double ans[N]; //将每个数所产生的结果直接存储 char s[N]; int n;int main(){ ans[0]=0; for(int i=1;i =7)printf("1.64493\n"); //因为k>=110292之后,都固定为1.64493了 else { for(int i=0;i
转载地址:http://ptzci.baihongyu.com/