码迷,mamicode.com
首页 > 其他好文 > 详细

3.分数矩阵

时间:2017-12-09 22:38:21      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:font   输入   double   mil   str   main   i++   3.0   strong   

水题之分数矩阵求和

我们定义如下矩阵:
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位小数。
样例输入
2
4
0
样例输出
3.00
8.83


 

 

#include<stdio.h>
int main() {
  int n;
  while (scanf("%d", &n), n) {
    double sum = 0;
    int i = 2, tp = n - 1;
    while (tp >= 1 && i <= n) {
      sum = sum + tp * (double)1.0 / i;
      tp--, i++;
    }
    sum = n + 2 * sum;
    printf("%.2f\n", sum);
  }
}

通过观察可知,这个矩阵是关于对角线对称的,通过这种关系,可以得到递推公式,进而求和。

3.分数矩阵

标签:font   输入   double   mil   str   main   i++   3.0   strong   

原文地址:http://www.cnblogs.com/filters/p/8012670.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!