分数矩阵
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7729 Accepted Submission(s): 4460
Problem Description
我们定义如下矩阵:
1/1 1/2 1/3
1/2 1/1 1/2
1/3 1/2 1/1
矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增。
请求出这个矩阵的总和。
Input
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时,输入结束。
Output
输出答案,保留2位小数。
Sample Input
1 2 3 4 0
1.00 3.00 5.67 8.83
Wiskey
Source
问题链接:HDU2156 分数矩阵
问题简述:参见上文。
问题分析:这是一个计算程序,需要将矩阵分为对角线和三角部分,然后分别计算。
程序说明:(略)题记:(略)
AC的C语言程序如下:
/* HDU2156 分数矩阵 */
#include <stdio.h>
int main(void)
{
int n, i;
double sum;
while(scanf("%d", &n) != EOF && n) {
/* 斜对角和 */
sum = n; /* n * 1 */
/* 下三角与上三角之和:1/i的数量 */
for(i=2; i<=n; i++)
sum += 1.0 / i * (n - i + 1) * 2;
printf("%.2lf\n", sum);
}
return 0;
}