题目描述
完成一个递归程序,倒置字符数组。并打印实现过程
递归逻辑为:
当字符长度等于1时,直接返回
否则,调换首尾两个字符,在递归地倒置字符数组的剩下部分
输入格式
字符数组长度及该数组
输出格式
在求解过程中,打印字符数组的变化情况。
最后空一行,在程序结尾处打印倒置后该数组的各个元素。
样例输入
复制
5 abcde
样例输出
复制
ebcda edcba edcba
#include<iostream>
#include<cstring>
using namespace std;
string x;
int n;
void jh(int a, int b)
{
if (a >= b)
return;
else
{
swap(x[a], x[b]); //交换函数
cout << x << endl;
jh(a + 1, b - 1); //返回递归
}
}
int main()
{
cin >> n >> x;
jh(0, x.size() - 1); //后两位是输入的下标
cout << endl << x;
return 0;
}
swap 交换函数