TOJ1373_多项式规律

#include<iostream>
#include<iomanip>
using namespace std;

double seq(int n)
{
    double s = 0.0;
    for (int i = 1;i <= n;i++)
    {
        if (i % 2 == 0)
            s -= 1.0 / i;
        else
            s += 1.0 / i;
    }
    return s;
}

int main()
{
    int n,m;
    double arr[1000] = { 0.0 };
    
    while (cin >> m)
    {
        for (int i = 1;i <= 1000;i++)
        {
            arr[i] = seq(i);
        }
        for (int j = 1;j <=m;j++)
        {
            cin >> n;
            cout << setiosflags(ios::fixed) << setprecision(2) << arr[n] << endl;
        }
    }
    return 0;
}
View Code

wrong answer的原因n值可取1000个。

新的方法:先将所有可能的值赋值给数组s[i] (通常是通过主函数调用的功能函数),然后通过输入特定值(数组项)输出结果。

原文地址:https://www.cnblogs.com/hansichen/p/7138819.html