f(0,0)=0; f(1,0)=0;//没有盘子 f(0,1)=1;//有盘子,没苹果 f(1,1)=f(1,0)+f(0,1)=1; #include <iostream> using namespace std ; int I , K ; //I:苹果数,K:盘子数 int set ( int I , int K ){ if ( I < K ) return set ( I , I ); if ( I == 0 ) //没有苹果,方法为1; return 1 ; if ( K == 1 ) //一个盘子,方法为1; return 1 ; return set ( I , K - 1 ) + set ( I - K , K ); } int main (){ //int i; //cin >> i; /*while (i--){*/ cin >> I >> K ; cout << set ( I , K )<< endl ; //} cin . get (); cin . get (); return 0 ; } 来源:51CTO 作者: 弥徒 链接:https://blog.csdn.net/qq_37292022/article/details/100806108