AOJ 0030 Sum of Integers

AOJ 0030 Sum of Integersです。

import java.util.Scanner;

public class Main {
  private static Scanner s = new Scanner(System.in);

  public static void main(String[] args) {
    while (true) {
      int[] in = nextInput();
      if (in[0] == 0 && in[1] == 0) {
        break;
      }
      System.out.println(soi(in[0], in[1], -1));
    }
  }

  static int soi(int n, int s, int i) {
    if (n == 0) {
        return (s == 0) ? 1 : 0;
    }
    int a = 0;
    int l = Math.min(s, 9);
    for (i = i + 1; i <= l; i++) {
      a += soi(n - 1, s - i, i);
    }
    return a;
  }

  static int[] nextInput() {
    int[] input = new int[2];
    for (int i = 0; i < 2; i++) {
      input[i] = s.nextInt();
    }
    return input;
  }
}