今天主要是复习英语
我直呼英语是门玄学!!!
代码就敲一题:
问题描述
完成一个递归程序,倒置字符数组。并打印实现过程
递归逻辑为:
当字符长度等于1时,直接返回
否则,调换首尾两个字符,在递归地倒置字符数组的剩下部分
输入格式
字符数组长度及该数组
输出格式
在求解过程中,打印字符数组的变化情况。
最后空一行,在程序结尾处打印倒置后该数组的各个元素。
Sample 1
5 abcde
Sample 2
1 a
样例输出
Sample 1
ebcda
edcba
edcba
Sample 2
a
代码实现:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int num,i;
char a[1000],b;
scanf("%d %s",&num,a);
if(num==1)
for(i=0;i<num;i++)
cout<<endl<<a[i]<<endl;
else
{
int x=num-1,y=0;
for(i=0;i<num/2;i++)
{
b=a[x];
a[x]=a[y];
a[y]=b;
x--;
y++;
for(int j=0;j<num;j++)
cout<<a[j];
cout<<endl;
}
cout<<endl;
for(int j=0;j<num;j++)
cout<<a[j];
}
return 0;
}