HDU 2156 分数矩阵

来源:互联网 发布:电脑看电视直播软件 编辑:程序博客网 时间:2024/05/22 23:46

分数矩阵

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 5312    Accepted Submission(s): 3146


Problem Description
我们定义如下矩阵:
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
12340
 

Sample Output
1.003.005.678.83
注意:
1:水题~
2:也可以用递推 日后补上
#include<stdio.h>int main (void){    int a,i;    double sum2=0.0,sum=0.0;    while(~scanf("%d",&a)&&a!=0)    {        sum2=0.0;        double k=1.0;        for(i=a;i>1;i--)        {            sum=(1.0/i)*k;            sum2=sum+sum2;            k++;        }        printf("%.2lf\n",a+2*sum2);    }    return 0;}

//打表法 打表中用到递推

#include<stdio.h>#include<string.h>double a[50001];double b (void){    int i;    memset(a,0,sizeof(a));    a[0]=0;    a[1]=1;    a[2]=3;    for(i=3;i<50000;i++)    {        a[i]=a[i-1]*2-a[i-2]+2.0/i;    }}int main (void){    int n;    b();    while(~scanf("%d",&n)&&n)    {        printf("%.2lf\n",a[n]);    }    return 0;}


0 0
原创粉丝点击