#C再帰的な階乗と

この問題は階乗単純な関数の計算整数非負を達成するために必要な、そして機能評価1を使用して!2!3!+ ... + nは!値。

関数インタフェースの定義:

double fact( int n );
double factsum( int n );

関数がfact返す必要がありn階乗を、再帰的を達成することをお勧めします。この関数はfactsum1を返す必要があります!+ 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 }

 

おすすめ

転載: www.cnblogs.com/ww-a-bx/p/11972062.html