POJ Problem 1664 放苹果

来源:互联网 发布:大智慧ts诊断主图源码 编辑:程序博客网 时间:2024/06/01 09:44

递归:

fun(m, n)表示m个苹果,放在n个盘子上有多少种方法,则n<=m时,

(1)至少有一个盘子上没有放苹果,即为fun(m, n-1);

(2)所有盘子都有苹果,然后从每个盘子上拿走一个苹果,即为fun(m-n, n)

故fun(m, n) = fun(m, n-1) + fun(m-n, n)

import java.util.Scanner;public class Main{ static int fun(int m, int n){ if(m == 0|| n == 1) return 1; if(m < n) return fun(m, m); else return fun(m, n-1)+fun(m-n, n); }  public static void main(String args[]) {  Scanner in = new Scanner(System.in);  int t = in.nextInt();  while(t > 0){  int m, n;  m = in.nextInt();  n = in.nextInt();  int ans = fun(m, n);  System.out.println(ans);  t--;  }      }}


0 0