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 C# (judge verdict: Accepted)

using System;
using System.Collections.Generic;
using System.Linq;

namespace CSharpSample01
{

    class Program
    {
        static int n;  //目的の値
        static int num;  //組み合わせる数
        static int count;

        static void SumInteger(int current, int i, int s)
        {
            int c = current + 1;  //現在の個数
            int sum = s;  //今の合計

            for (int j = i + 1; j <= 9; j++)
            {
                sum += j;

                if (c < num && sum >= n)
                {
                    return;
                }

                if (c == num)
                {
                    if (sum == n)
                    {
                        count++;
                        return;
                    }
                    else if (sum > n)
                    {
                        return;
                    }
                    else
                    {
                        sum -= j;
                        continue;
                    }
                }

                SumInteger(c, j, sum);

                sum -= j;
            }


        }


        static void Main(string[] args)
        {
            while (true)
            {
                string[] input = Console.ReadLine().Split(' ');

                num = int.Parse(input[0]);
                n = int.Parse(input[1]);
                count = 0;

                if (n == 0 && num == 0)
                {
                    break;
                }
                else
                {
                    SumInteger(0, -1, 0);
                }

                Console.WriteLine(count);
            }



        }
    }
}