数论--分数矩阵

    xiaoxiao2022-07-14  179

    题目描述 我们定义如下矩阵: 1/1 1/2 1/3 1/2 1/1 1/2 1/3 1/2 1/1 矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增。 请求出这个矩阵的总和。 输入 输入包含多组测试数据。每行给定整数N(N<50000),表示矩阵为N*N。当N=0时,输入结束。 输出 输出答案,结果保留2位小数。

    样例输入 1 2 3 4 0 样例输出 1.00 3.00 5.67 8.83

    #include <iostream> using namespace std; int main() { double a[50050] = {0}; double b[50050] = {0}; for (int i = 1; i < 50050; i++) { b[i] = b[i - 1] + 1.0 / i; } for (int i = 1; i < 50050; i++) { a[i] = a[i - 1] + b[i] * 2 - 1; } int n; while (cin >> n && n != 0) { printf("%.2f\n", a[n]); } return 0; }
    最新回复(0)