課題
ランダムで数字が表示される機械があります。
1回につき1point、2point、もしくは3pointを出力します。
合計{N}point得るためには、何通りの組み合わせがあるか、プログラムを考えなさい。
例:合計{n}が1pointの場合、答は下記の1通りとなる。
1point
###例:合計{n}が2pointの場合、答は下記の2通りとなる。
1point,1point 2point
###例:合計{n}が3pointの場合、答は下記の4通りとなる。
1point,1point,1point 1point,2point 2point,1point 3point
###例:合計{n}が4pointの場合、答は下記の7通りとなる。
1point、1point、1point、1point 1point、1point、2point 1point、2point、1point 1point、3point 2point、1point、1point 2point、2point 3point、1point
組み合わせについて
#include <stdio.h> /*--- 異なるn個からr個の整数を取り出す組み合わせの数を返す ---*/ int combination(int n, int r) { if (r == 0 || r == n) return (1); else if (r == 1) return (n); return (combination(n - 1, r - 1) + combination(n - 1, r)); } int main(void) { int n, r; puts("異なるn個からr個の整数を取り出す組合せの数を求めます。"); printf("n:"); scanf("%d", &n); printf("r:"); scanf("%d", &r); printf("組合せの数は%dです。\n", combination(n, r)); return (0); }
0からコードを作るほど、まだ力がないので、ネットにあるコードを参考にしてプログラムを作ろうと思っていますが、
出力される数字が1or2or3という様に3つのパターンがあるところが今難しく、どういう風にプログラムにしようか考えています。
ご教授やご助言いただける方、いらっしゃったらよろしくお願いします。
回答6件
あなたの回答
tips
プレビュー