标签:font 输入 double mil str main i++ 3.0 strong
水题之分数矩阵求和
我们定义如下矩阵:
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位小数。
样例输入
2
4
0
样例输出
3.00
8.83
#include<stdio.h>
int main() {
int n;
while (scanf("%d", &n), n) {
double sum = 0;
int i = 2, tp = n - 1;
while (tp >= 1 && i <= n) {
sum = sum + tp * (double)1.0 / i;
tp--, i++;
}
sum = n + 2 * sum;
printf("%.2f\n", sum);
}
}
通过观察可知,这个矩阵是关于对角线对称的,通过这种关系,可以得到递推公式,进而求和。
标签:font 输入 double mil str main i++ 3.0 strong
原文地址:http://www.cnblogs.com/filters/p/8012670.html