2017年蓝桥杯省赛A组c++第5题(递归算法填空)

复制代码
/* 
由 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 ______________________________________   // 填空  
    return  f(a-1,b,c,n-1)+f(a,b-1,c,n-1)+f(a,b,c-1,n-1); 
}  
int main() 
{   
    printf("%d\n", f(1,1,1,2));  
    printf("%d\n", f(1,2,3,3));  
    return 0; 
}
复制代码

 

 

 

 

tz@COI HZAU

2018/3/16

posted on   tuzhuo  阅读(311)  评论(0编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示