分数矩阵
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4620 Accepted Submission(s): 2796
Problem Description
我们定义如下矩阵:
1/1 1/2 1/3
1/2 1/1 1/2
1/3 1/2 1/1
矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增。
请求出这个矩阵的总和。
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位小数。
Sample Input
1 2 3 4 0
Sample Output
1.00 3.00 5.67 8.83
#include <stdio.h>
int main()
{
int n,i;
double sum;
while (scanf("%d",&n)&&n!=0)
{
sum=0;
for (i=n;i>=2;i--)
{
sum+=1.0/i*(n-i+1);
}
sum*=2;
sum+=n;
printf("%.2lf\n",sum);
}
}
其实这个很简单的,找出规律就可以了!
1 2 3 4
2 1 2 3
3 2 1 2
4 3 2 1
当n等与2时 2个2
当n等与3时 4个2,2个3
当n等于4时 2个4,4个3,6个2
最后n时几就有几个1,这个规律你发现了吗?