【C言語】再帰関数を使用してフィボナッチ数列を第0項から第n項まで求める

再帰関数を使用してフィボナッチ数列を第0項から第n項まで求める。関数fibonacciに2より小さい値nを渡すとnを返し、2より大きい値だとfibonacci(n-1)+fibonacci(n-2)を返すと簡単にフィボナッチ数列を求めるプログラムを作成できる。任意の階乗を求めるプログラム と同じようなプログラムである。

続きを読む

【C言語】 再帰関数を使った最大値と最小値の求め方(データの数が2のべき乗限定)

データを配列に入れてbox=[1,2,3,・・・]として最大値を求めるプログラムを作成する。

1.データ数が1のとき、box[0]が最大値となる
2.データ数が2のとき、box[0]をグループ1としbox[1]をグループ2として、グループ1の最大値とグループ2の最大値を比較し
大きい方がデータの最大値となる。
3.データ数が4のとき box[0]~box[1]をグループ1としbox[2]~box[3]をグループ2としてグループ1の最大値とグループ2の最大値を比較し
大きい方がデータの最大値となる。
4.データ数が8のとき、box[0]~box[3]をグループ1としbox[4]~box[7]をグループ2としてグループ1の最大値とグループ2の最大値を比較し
大きい方がデータの最大値となる。
5.データ数が16のとき、box[0]~box[7]をグループ1としbox[8]~box[16]をグループ2としてグループ1の最大値とグループ2の最大値を比較し
大きい方がデータの最大値となる。
6.データ数が32のとき、box[0]~box[15]をグループ1としbox[16]~box[32]をグループ2としてグループ1の最大値とグループ2の最大値を比較し
大きい方がデータの最大値となる。

このようにn(データが2のべき乗)のときbox[[0]~box[(n/2)-1]をグループ1としbox[n/2]~box[n-1]をグループ2

としてグループ1の最大値とグループ2の最大値を比較し
大きい方がデータの最大値となる。

最小値も同様な考え方でできる。

続きを読む

【C言語】再帰関数を使った最大値と最小値の求め方(データの数が何個でもOK)

データを配列に入れてbox=[1,2,3,・・・n]として最小値を求めるプログラムを作成する。

1.データ数が1のとき、box[0]が最小値となる
2.データ数が2のとき、box[0]をグループ1としbox[1]をグループ2として、グループ1の最小値とグループ2の最小値を比較し小さい方がデータの最小値となる。
3.データ数が3のとき、box[0]をグループ1としbox[1]~box[2]をグループ2として、グループ1の最小値とグループ2の最小値を比較し
小さい方がデータの最小値となる。
4.データ数が4のとき、box[0]をグループ1としbox[1]~box[3]をグループ2として、グループ1の最小値とグループ2の最小値を比較し
小さい方がデータの最小値となる。
5.データ数が5のとき、box[0]をグループ1としbox[1]~box[4]をグループ2として、グループ1の最小値とグループ2の最小値を比較し
小さい方がデータの最小値となる。
6.データ数が6のとき、box[0]をグループ1としbox[1]~box[5]をグループ2として、グループ1の最小値とグループ2の最小値を比較し
小さい方がデータの最小値となる。

このように要素数がnの整数配列の最小値は、一番左の要素box[0]をグループ1として
box[1]~box[n-1]のグループ2としてグループ1の最小値とグループ2の最小値を比較し
小さい方がデータの最小値となる。これによってデータ数が何個でも最小値を求められる。

同様にすると最大値も求められる。

続きを読む