Problem:
整数の和

0 から 9 の数字から異なる n 個の数を取り出して合計が s となる組み合わせの数を出力するプログラムを作成してください。n 個の数はおのおの 0 から 9 までとし、１つの組み合わせに同じ数字は使えません。たとえば、n が 3 で s が 6 のとき、3 個の数字の合計が 6 になる組み合わせは、

1 + 2 + 3 = 6

0 + 1 + 5 = 6

0 + 2 + 4 = 6

の 3 通りとなります。

Input

複数のデータセットが与えられます。各データセットに n (1 ≤ n ≤ 9) と s (0 ≤ s ≤ 100) が１つのスペースで区切られて１行に与えられます。n と s が共に 0 のとき入力の最後とします（この場合は処理せずにプログラムを終了する）。

データセットの数は 50 を超えません。

Output

各データセットに対して、n 個の整数の和が s になる組み合わせの数を１行に出力して下さい。

Sample Input

3 6
3 1
0 0

Output for the Sample Input

3
0

Solution in JAVA (judge verdict: Accepted)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Main {
	private	static	BufferedReader br = null;

	static {
		br = new BufferedReader(new InputStreamReader(System.in));
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String		line  = null;
		String[]	token = null;
		int[]		aTrm  = null;
		int			nSum  = 0;
		int			nTrm  = 0;
		int			nCab  = 0;

		while((line = parseNum()) != null) {
			token = line.split(" ");
			nTrm  = Integer.parseInt(token[0]);
			nSum  = Integer.parseInt(token[1]);
			if (nTrm == 0 && nSum == 0) {
				break;
			}
			aTrm  = new int[nTrm];
			nCab  = calc(0, 1, 0, nSum, aTrm);
			System.out.println(nCab);
		}
	}

	private static String parseNum() {
		String	strNum = null;

		try {
			String line = br.readLine();
			if (line != null) {
				if (!line.isEmpty()) {
					strNum = line;
				}
			}
		}
		catch (IOException e) {}

		return strNum;
	}

	private static int calc(int nSumC, int nTrmC, int nCst, int nSumM, int[] aTrm) {
		int	nCnt = 0;

		for (int n = nCst; n <= 9; n++) {
			aTrm[nTrmC - 1] = n;
			if ((nTrmC == aTrm.length) && (nSumC + n == nSumM)) {
				// 最終項までの総和が指定した総和と一致した
				nCnt += 1;
			}
			else if ((nTrmC != aTrm.length) && (nSumC + n < nSumM)) {
				// 最終項より前までの総和が指定した総和より小さい
				nCnt += calc(nSumC + n, nTrmC + 1, n + 1, nSumM, aTrm);
			}
			else if (nSumC + n >= nSumM) {
				break;
			}
		}

		return nCnt;
	}
}