想看題目請點我
例如: t=3 k=-3
k
/ | \
1 2 3
/ \ /
1 2 1
/
1
#include <iostream> using namespace std; int answer ; int recursive(int nowT,int k,int t); int main() { int t,k ; // t 遊戲難度 , k 地下k樓 (0>k>-20) while(cin >> t >> k ) { answer = 0 ; // Init recursive(t,(-k),t); cout << answer << endl ; } } int recursive(int nowT,int k,int t) { if((k - nowT ) < 0) { recursive((nowT-1),(k),t); } else if( k == 0) { answer++ ; if(nowT > 1) recursive((nowT-1),(k),t); else return EXIT_SUCCESS ; } else { for(int i = t ; i > 0 ; i--) { if((k-i) >=0 ) recursive(i,(k-i),t); } } }這題解小弟的解法大致上用樹的觀念
例如: t=3 k=-3
k
/ | \
1 2 3
/ \ /
1 2 1
/
1