/* 関数の再帰呼び出し 2-7.c */ #include <stdio.h> /* 関数は自分自身を再帰的に呼び出せるので、これを利用すると階乗計算などは 次の様に書ける。*/ //--階乗計算 double fact(int n) { if (n==1) return 1; else return n*fact(n-1); }/* n!=n*(n-1)! なのでこうなる。n=1 の時には 1を返す。*/ //--整数値aからbまでの総和 /* (aからbまでのsum)=(aからb-1までのsum)+bなので、階乗計算と同じ様に書ける。*/ int sum(int a, int b) { if (b==a) return a; else return sum(a,b-1)+b; } //----- int main(void) { int n,a,b; printf("階乗計算, 数値を入力:"); scanf("%d",&n); printf("%d!=%.lf\n\n",n,fact(n)); printf("整数値 aからbまでの総和, 数値 a, bを入力:"); scanf("%d %d",&a,&b); printf("sum=%d\n",sum(a,b)); return 0; }