Description
完成一个递归程序,倒置字符数组。并打印实现过程
递归逻辑为:
当字符长度等于1时,直接返回
否则,调换首尾两个字符,在递归地倒置字符数组的剩下部分
Input
输入描述:
字符数组长度及该数组
输入样例:
5 abcde
Output
输出描述:
在求解过程中,打印字符数组的变化情况。
最后空一行,在程序结尾处打印倒置后该数组的各个元素。
输出样例:
ebcda
edcba
edcba
源码
#include <iostream>
#include <stdio.h>
#include <fstream>
#include <math.h>
using namespace std;
char arr[10005];
int n;
void change(int head,int tail)
{
if(tail-head>0)
{
char temp=arr[head];
arr[head]=arr[tail];
arr[tail]=temp;
printf("%s\n",arr);
change(head+1,tail-1);
}
else return;
}
int main()
{
scanf("%d%s",&n,arr);
change(0,n-1);
printf("\n%s\n",arr);
return 0;
}