矩阵求和-HDOJ2156
来源:互联网 发布:上海市政总院 知乎 编辑:程序博客网 时间:2024/06/05 09:36
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位小数。
这道题目我用数学归纳法做出来了,代码如下:#include <iostream>#include <iomanip>using namespace std;double f(int n){ double sum=0; for(int i=1;i<=n;i++) { sum+=1.0/(i+1); } return sum;}double Func(int n) //得到真因子之和{ if(n==1) return 1; else if(n==2) return 3; else return Func(n-1)+1+2*f(n-1);}int main(){ int n; while(cin>>n && n) { cout<<setprecision(2)<<std::fixed<<Func(n)<<endl; } return 0;}可惜的是,运行时间超时。
网上找了个更简单的答案,成功AC。
#include <iostream>#include <iomanip>using namespace std;int main(){ int N; while(cin>>N && N) { int i,n; double sum=0; n=N-1; for(i=2;i<=N;i++) { sum+=n*1.0/i; n--; } sum=sum*2+N; cout<<setprecision(2)<<std::fixed<<sum<<endl; } return 0;}规律不言自明,看来自己的观察还千火候啊!
0 0
- 矩阵求和-HDOJ2156
- HDOJ2156分数矩阵
- 矩阵求和
- 矩阵求和
- 矩阵求和
- 矩阵求和 非递归
- sum 矩阵求和 matlab
- POJ3233 矩阵幂求和
- acm~矩阵求和
- CUDA矩阵元素求和
- 矩阵对角求和
- #1286 : 子矩阵求和
- BZOJ2901 矩阵求和
- 矩阵对角线元素求和
- bzoj2901: 矩阵求和
- opencv 矩阵行列求和
- 最大子矩阵求和
- 等比矩阵求和-POJ3233
- C#中ToString()格式详解
- Canny边缘检测算法原理及其VC实现详解(二)
- 一步一步在OEL5.5 64位Linux上安装Oracle 10gR2 RAC(1)
- 看图了解Java中JDK与JRE、JVM的各自的作用及区别
- There is no getter for property named '**' in 'class java.lang.String'
- 矩阵求和-HDOJ2156
- recovery图片资源的再分析
- Pow(x, n)
- 白话机器学习算法(七)LDA
- qsort的使用
- 一步一步在OEL5.5 64位Linux上安装Oracle 10gR2 RAC(2)
- 第三周作业——冒泡排序和归并排序
- Windows调试 - 如何使用dump文件
- 【Android学习】利用HTTP协议下载