組合せの数(2項係数)を計算する関数
long int C(int n, int m)
を再帰呼出しで関数定義した場合に、与えられた非負整数 n、m を引数とする呼出し C(n,m) 対して関数 C が呼び出される回数を数え、組合せの数の値とその呼出し回数を標準出力に書き出すプログラムを作りたい。
プログラムの仕様はつぎの通りです。
非負整数 n、m はコマンドラインに与えられる。
出力は、つぎの形式の1行として書き出すこと。
u [ c times]
u は組合せの数の値、 c はその呼出し回数
u と [ の間、c と times の間には、それぞれ空白1文字をおくこと。
■実行例
コマンドライン入力
0 0
標準出力
1 [1 times]
コマンドライン入力
3 2
標準出力
3 [5 times]
コマンドライン入力
10 8
標準出力
45 [89 times]
c
1#include <stdio.h> 2#include <stdlib.h> 3long int C_count; 4long int C(int n, int m); 5 6 7int main(int argc, char *argv[]){ 8 9 ・・・コマンドラインから n, m を読み取り 10 ・・・C(n,m) の値と、呼出し回数を書き出す 11 12 return 0; 13} 14 15long int C(int n, int m){ 16 17 if( m==0 ) return 1; 18 if( m==n ) return 1; 19 return C(n-1,m)+C(n-1,m-1); 20}
回答3件
あなたの回答
tips
プレビュー