1046 - 分数矩阵
我们定义如下矩阵:
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
C语言解答
#include<stdio.h> int main() { long n,i,t,c; double sum; while(scanf("%ld",&n),n!=0) { for(sum=0,c=0,i=1;i<=n-1;i++,c++) sum+=1.0/(n-c)*(c+1); sum=sum*2+n; printf("%.2lf\n",sum); } return 0; }
C++解答
#include<stdio.h> int main() { long n,i,t,c; double sum; while(scanf("%ld",&n),n!=0) { for(sum=0,c=0,i=1;i<=n-1;i++,c++) sum+=1.0/(n-c)*(c+1); sum=sum*2+n; printf("%.2lf\n",sum); } return 0; }