1408141436-hd-u Calculate e.cpp

                                    u Calculate e

                                         Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
                                                           Total Submission(s): 30388    Accepted Submission(s): 13569


Problem Description
A simple mathematical formula for e is



where n is allowed to go to infinity. This can actually yield very accurate approximations of e using relatively small values of n.
 

Output
Output the approximations of e generated by the above formula for the values of n from 0 to 9. The beginning of your output should appear similar to that shown below.
 

Sample Output
   
   
   
   
n e - ----------- 0 1 1 2 2 2.5 3 2.666666667 4 2.708333333
 

题目大意

       让求那个式子的值,没有输入,直接输出当n=0至n=9的时候的e的值。输出格式如Sample Output.

 

错误原因

       只输出了n和e的值,上面的格式没有输出。坑爹啊!!!

 

解题思路

       直接用了最简单也是最笨的方法。因为当n=0到n=2的时候,输出格式跟下面不太一样,所以我把他们另外考虑并输出,其他的按保留9位小数一起输出。

 

额外收获

       当输出数据要求左对齐的时候,用%-d。

 

代码

#include<stdio.h>
int main()
{
    int n;
    int i;
    double e,j,k;
    printf("n e\n");
    printf("- -----------\n");
    //这里一开始没加,结果 wa了。 
    for(n=0;n<10;n++)
    {
        printf("%d ",n);
        if(n==0)
            printf("%-d\n",1);
        else if(n==1)
            printf("%-d\n",2);
        else if(n==2)
            printf("%-.1lf\n",2.5);
        else
        {
            j=1;
            e=1;
            for(i=1;i<=n;i++)
            {
                j*=i;
                e+=1/j;
            }
            printf("%-.9lf\n",e);
        }
    }
    return 0;
}


 


 

你可能感兴趣的:(1408141436-hd-u Calculate e.cpp)