解题思路:
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语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:858 |
蛇行矩阵 (C语言代码)浏览:507 |
陈教主的三角形 (C语言代码)浏览:1143 |
大神老白 (C语言代码)浏览:601 |
钟神赛车 (C语言代码)浏览:602 |
时间转换 (C语言代码)浏览:629 |
C二级辅导-等差数列 (C语言代码)浏览:826 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:673 |
【计算直线的交点数】 (C语言代码)浏览:923 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:565 |