この問題は階乗単純な関数の計算整数非負を達成するために必要な、そして機能評価1を使用して!2!3!+ ... + nは!値。
関数インタフェースの定義:
double fact( int n );
double factsum( int n );
関数がfact
返す必要がありn
階乗を、再帰的を達成することをお勧めします。この関数はfactsum
1を返す必要があります!+ 2!+ ... + n
!の値。タイトルは倍精度で、入力と出力のことを確認してください。
審判のテストプログラムの例:
#include <stdio.h>
double fact( int n );
double factsum( int n );
int main()
{
int n;
scanf("%d",&n);
printf("fact(%d) = %.0f\n", n, fact(n));
printf("sum = %.0f\n", factsum(n));
return 0;
}
/* 你的代码将被嵌在这里 */
サンプル入力1:
10
出力サンプル1:
fact(10) = 3628800
sum = 4037913
サンプル入力2:
0
出力サンプル2:
fact(0) = 1
sum = 0
1の#include <stdio.hの> 2 二重事実(INT N)。 3 二重 factsum(INT N)。 4 5 int型のmain(){ 6 INT N。 7 8 のscanf(" %d個"、&N) 9 のprintf(" 事実(%のD)=%.0f \ n " 、nは、事実(N))。 10 のprintf(" 和=%.0f \ n " 、factsum(N))。 11 12 戻り 0 ; 13 } 14 二重事実(int型N){ 15の ダブルRES、合計。 16 であれば(N == 1 || N == 0 ){ 17の RES = 1 。 18 } 他{ 19の RES = N *事実(N - 1 )。 20 } 21 リターンRES。 22 } 23 ダブル factsum(INT N){ 24 二重和= 0 。 25 であれば(N == 1 ) 26 合計= 1 ; 27 他の 場合(N == 0 ) 28 合計= 2 。 29 他{ 30 合計=事実(N)+ factsum(N - 1 )。 31 } 32 33 戻り和。 34 }