题目描述 我们定义如下矩阵: 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;
}