第9講 関数の再帰的使用
第2話 関数の再帰的使用にって1から10までの和を実現する
実行画面が
a=0
a=1
a=2
a=3
a=4
a=5
a=6
a=7
a=8
a=9
となるコード例
#include<stdio.h>
void f(int a);
int main() {
f(0);
return(0);
}
void f(int a) {
printf("a=%d\n",a);
if (a + 1 < 10)f(a + 1);
}
これを少し改良すると、
1+2+3+・・・+10を計算させることが出来ます。
そのコードと実行画面は、
#include<stdio.h>
int f(int a);
int main() {
printf("1から10までの和は%dです。\n",f(10));
return(0);
}
int f(int a) {
int w;
if (a -1 >= 0)w=f(a - 1); else w=0;
w+=a;
return(w);
}
と
1から10までの和は55です。
です。
初心者どころかある程度プログラミングになれている人でも
?!?!?????!
ではないでしょうか。
私が、再帰的使用を分身の術と呼ぶと同時に、
入れ子式人形に例えるのは、
この難解なプログラムを理解するにぴったりであると考えるからです。
では、次話では入れ子人形の比輸を使って、
難解なプログラムを初心者の方にも理解できるように、
氷解させます。