poj--1517

1394 ワード

nは0から9までとり,1つの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)
すなわち、第1のforサイクルは次のnを決定し、第2のforサイクルはこの値で0に減算する
WA数回:
テクニック:%gは余分な0を省略することができて、例えば1.000000、私は浮動小数点を定義して、しかし私は%gの下で、出力1
発見:1.10 gの小数点の後で9位だけあって、ある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
"); printf("- -----------
"); for(n=0;n<10;n++) { double sum=0; for(i=n;i>=0;i--) { sum+=(double)1/factorial(i); } printf("%d %.10g
",n,sum); } return 0; }