码迷,mamicode.com
首页 > 其他好文 > 详细

poj--1517

时间:2015-05-06 17:02:19      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:

n从0取到9,一个for循环,n++,n=0,n<=9

n=4,求1/4!+1/3!+1/2!+1/1!+1/0!

需要一个for循环,i=n,i>=0,i--

sum+=factorial(i)

即是第一个for循环定下一个n,第二个for循环用这个值递减到0

WA几次:

技巧:%g可以用来省略多余的0,如1.000000,我定义了浮点,可我就%g下,输出1

发现:1.%.10g小数点后只有9位,有的第九位是0,小数点后就只有8位

   2.发现c语言的特性:对的1:

int main()
{
    double a;
    int temp=9;
    a=1.0/temp;
    printf("%lf",a);
}

  对的2:

int main()
{
    double a;
    int temp=9;
    a=(double)1/temp;
    printf("%lf",a);
}

  错的:

int main()
{
    double a;
    int temp=9;
    a=(double)(1/temp);
    printf("%lf",a);
}

  代码如下:改天看大数阶乘

#include <stdio.h>
#include <stdlib.h>
int factorial(int index)
{
    int i,temp=1;
    if(index==0)
        return 1;
    else{
        for(i=index;i>0;i--)
        {
            temp=temp*i;
        }
        return temp;
    }
}

int main()
{
    int n,i;
    printf("n e\n");
    printf("- -----------\n");
    for(n=0;n<10;n++)
    {
        double sum=0;
        for(i=n;i>=0;i--)
        {
            sum+=(double)1/factorial(i);
        }
        printf("%d %.10g\n",n,sum);
    }
    return 0;
}

  

 

poj--1517

标签:

原文地址:http://www.cnblogs.com/gabygoole/p/4482068.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!