HDU 1012 题解

HDU 1012

【读题】
题目


Main Idea:

    按照题目要求打出n在0-9时e的情况。

Problem Solving Idea:

    模拟。

Summary:

    1.%g可以去掉浮点数double的后缀0。
    2.题目前两个小数点没有后那么多位的情况,可直接按照Sameple output打印。
    3.这个题目我最开始是以为打印出的e要去掉后缀0,结果WA了。这时候就要看枚举题意的能力了(误),也可能是只有前两种情况去掉后缀0。

WA代码:

#include<bits/stdc++.h>
using namespace std;
double sum(double i){
    double su=0,fa=1.0;
    for(double k=1;k<=i;k+=1){
        fa*=k;
    }
    su=1.0/fa;
    return su;
}
int main()
{
    double n,e=1,i;
    printf("n e\n");
    printf("- -----------\n");
    printf("0 1\n");
    for(double k=1;k<=9;k+=1){
        e+=sum(k);
        printf("%.0f %.10g\n",k,e);
    }
    return 0;
}

AC代码:

#include<stdio.h>
int main(){
int n;
printf("n e\n");
printf("- -----------\n");
printf("0 1\n");
printf("1 2\n");
printf("2 2.5\n");
for(n=3;n<=9;n++){
    double sum=2.5;
    int i;
    for(i=3;i<=n;i++){
            int j,t=1;
        for(j=1;j<=i;j++){
            t=t*j;
        }
        sum=sum+1.0/t;
    }
    printf("%d %.9lf\n",n,sum);
}
 
return 0;
}

posted on 2019-12-04 21:22  休比  阅读(197)  评论(0编辑  收藏  举报