ブルーブリッジカップデイリーワン質問1.72017州大会グループA5。文字列[空欄にコードを記入] [DP] [順列と組み合わせの問題]

タイトル説明

  2017ブルーブリッジカップソフトウェア州大会C ++大学グループA質問5「文字列」。
  コードの空欄を埋める質問。これはポイントを与える伝統的な質問だと言われていますが、ポイントを与える方法を見てみましょう。
  難しいことではないので、私はNi Wendiを気にせず、Luo先生は自分でそれを行うことができます。


多くの文字列は、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
注:下線部のみに欠落しているコードを入力し、任意の冗長コンテンツや説明文を提出していません。

https://blog.csdn.net/weixin_43914593/article/details/112297807

無駄はそれがQAQであると感じません

return f(a - 1, b, c, n - 1) + f(a, b - 1, c, n - 1) + f(a, b, c - 1, n - 1)

順列と組み合わせの問題の古典的な解決策-母関数

おすすめ

転載: blog.csdn.net/qq_43660826/article/details/112983095