1. 程式人生 > >第八屆藍橋杯 字母組串

第八屆藍橋杯 字母組串

標題:字母組串

由 A,B,C 這3個字母就可以組成許多串。
比如:"A","AB","ABC","ABA","AACBB" ....現在,小明正在思考一個問題:
如果每個字母的個數有限定,能組成多少個已知長度的串呢?他請好朋友來幫忙,很快得到了程式碼,
解決方案超級簡單,然而最重要的部分卻語焉不詳。請仔細分析原始碼,填寫劃線部分缺少的內容。#include <stdio.h>// a個A,b個B,c個C 字母,能組成多少個不同的長度為n的串。
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 ______________________________________ ;  // 填空
}int main()
{
 printf("%d\n", f(1,1,1,2));
 printf("%d\n", f(1,2,3,3));
 return 0;
}對於上面的測試資料,小明口算的結果應該是:
6
19
注意:只填寫劃線部分缺少的程式碼,不要提交任何多餘內容或說明性文字。

答案:f(a-1,b,c,n-1)+f(a,b-1,c,n-1)+f(a,b,c-1,n-1)