分数矩阵
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5312 Accepted Submission(s): 3146
1/1 1/2 1/3
1/2 1/1 1/2
1/3 1/2 1/1
矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增。
请求出这个矩阵的总和。
1 2 3 4 0
1.00 3.00 5.67 8.83
递归做
#include<stdio.h> double number(int n) { int i; double num1=0; for(i=n;i>1;i--) { num1+=(double)1/i+(double)1/(i-1); } num1+=(double)1/n; if(n==1) return 1; else if(n==0) return 0; else return num1+number(n-1); } int main() { double number(int n); int n; double num=0; while(~scanf("%d",&n)) { if(n==0) return 0; else{ num=number(n); printf("%.2lf\n",num);} } } 以对角线分开,两边对称着做(作为新人我不知道这种算法叫啥。。。。)
#include<stdio.h> int main ( ) { int n,i; double num1=0,num2=0; while(~scanf("%d",&n)) { sum2=0; double k=1; if(n==0) return 0; for(i=n;i>1;i--) { (double)num1=(1/i)*k; (double)num2=num1+num2; k++; } printf("%.2lf\n",n+2*sum2); } return 0; }