1046 - 分数矩阵
我们定义如下矩阵:
1/1 1/2 1/3
1/2 1/1 1/2
1/3 1/2 1/1
矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增。
请求出这个矩阵的总和。
Input
输入包含多组测试数据。每行给定整数N(N<50000),表示矩阵为N*N。当N=0时,输入结束。
Output
输出答案,结果保留2位小数。
Examples
Input
1 2 3 4 0
Output
1.00 3.00 5.67 8.83
Solution 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; }
Solution 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; }