arrows blog

解いた問題などを適当に書いていきます。

AOJ 0008 Sum of 4 Integers

問題概要

nが与えられる。
a + b + c + d = n
を満たすa, b, c, d(a, b, c, dそれぞれの値は、0から9までの範囲の整数に限る)の組み合わせの総数を求めよ。

制約

  • 1 ≤ n ≤ 50

解法

全探索。
a, b, c, dについて、それぞれが0から9のいずれであるかをループで決めるので、
4重ループを書き、その中で条件を満たすかどうかをチェックし、満たすのであれば、カウントに1を加算する。

コード

#include <iostream>

using namespace std;
 
int main()
{
    int N;
    while (cin >> N) {
        int cnt = 0;
        for (int i = 0; i <= 9; i++) {
            for (int j = 0; j <= 9; j++) {
                for (int k = 0; k <= 9; k++) {
                    for (int l = 0; l <= 9; l++) {
                        if (i + j + k + l == N) {
                            cnt++;
                        }
                    }
                }
            }
        }
        cout << cnt << endl;
    }
    return 0;
}