游客 Signup | Login
中文 | En

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;
}
Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题