解题思路:
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语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:829 |
【亲和数】 (C语言代码)浏览:597 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:504 |
C二级辅导-温度转换 (C语言代码)浏览:723 |
1134题解(求分析)浏览:725 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:667 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:840 |
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:595 |
P1002 (C语言代码)浏览:954 |
Manchester-汽水瓶问题浏览:4160 |