原题链接:蓝桥杯基础练习VIP-FJ的字符串
解题思路:
FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?
根据规律可以看出 A(n)=A(n-1)+char(n+'A'-1) +A(n-1);
所以这道题用递归在合适不过了,当然也可以用递推式;
注意事项:
递归时写成 return f(n-1)+(char)('A'+n-1)+f(n-1)每一次会将f(n-1)计算两次,时间复杂度2^n次方,所以要只计算一次f(n-1)然后保存下来才行;
参考代码:
...... string s;int x; string f(int n){ if(n==1)return "A"; return (s=f(n-1))+(char)('A'+n-1)+s; } int main() { cin>>x; cout<<f(x); }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复