求表示方法(整數劃分問題)
阿新 • • 發佈:2018-12-31
設 m、n 均為自然數,m 可表示為一些不超過 n 的自然數之和,f(m,n) 為這種表示方式的數目。
例如,f(5,3)=5,有5種表示方法:3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1。
請編寫程式,計算f(m,n)的值。
輸入:
m n
輸出:
f(m,n)的值
測試輸入 | 期待的輸出 | 時間限制 | 記憶體限制 | 額外程序 |
---|
#include "stdio.h" int IntegetrDivision( int m, int n); int main( ) { int m, n; scanf("%d %d", &m, &n); getchar(); printf("%d\n", IntegetrDivision(m, n)); return 0; } int IntegetrDivision(int m, int n) { if(n <= 1 || m <= 1) return 1; else if(m <= n) { return IntegetrDivision(m, m-1) + 1; } else { return IntegetrDivision(m - n, n) + IntegetrDivision(m, n-1); } }