標題:字母組串
由 A,B,C 這3個字母就可以組成許多串。
比如:"A","AB","ABC","ABA","AACBB" ....
現(xiàn)在,小明正在思考一個問題:
如果每個字母的個數(shù)有限定帅腌,能組成多少個已知長度的串呢绿满?
他請好朋友來幫忙亿胸,很快得到了代碼汹想,
解決方案超級簡單,然而最重要的部分卻語焉不詳腺律。
請仔細分析源碼奕短,填寫劃線部分缺少的內(nèi)容。匀钧、
public class A
{
// 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 ________________________________; //填空
}
public static void main(String[] args)
{
System.out.println(f(1,1,1,2));
System.out.println(f(1,2,3,3));
}
}
對于上面的測試數(shù)據(jù),小明口算的結果應該是:
6
19
注意:只填寫劃線部分缺少的代碼,不要提交任何多余內(nèi)容或說明性文字莉擒。
思路
遞歸酿炸,先找A字母,長度減1涨冀。
A字母找完后找B填硕,然后找C,遞歸下去鹿鳖。
答案
return f(a-1,b,c,n-1) + f(a,b-1,c,n-1) + f(a,b,c-1,n-1);