第八屆藍橋杯Java A——字母組串
由 A,B,C 這3個字母就可以組成許多串。
比如:"A","AB","ABC","ABA","AACBB" ....
現在,小明正在思考一個問題:
如果每個字母的個數有限定,能組成多少個已知長度的串呢?
他請好朋友來幫忙,很快得到了程式碼,
解決方案超級簡單,然而最重要的部分卻語焉不詳。
請仔細分析原始碼,填寫劃線部分缺少的內容。
// a個A,b個B,c個C 字母,能組成多少個不同的長度為n的串。 static int f(int a, int b, int c, int n) { if (a < 0 || b < 0 || c < 0) return 0; if (n == 0) return 1; return f(a - 1, b, c, n - 1) + f(a, b - 1, c, n - 1) + f(a, b, c - 1, n - 1); // 填空 } public static void main(String[] args) { System.out.println(f(1, 1, 1, 2)); System.out.println(f(1, 2, 3, 3)); }
對於上面的測試資料,小明口算的結果應該是:
6
19