怎样用递归实现一个序列的逆值

everybody_11 2005-11-15 06:49:22
如题
...全文
200 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
everybody_11 2005-12-04
  • 打赏
  • 举报
回复
g
everybody_11 2005-11-17
  • 打赏
  • 举报
回复
函数原形如:void inverse(int a[],int k)
要求将数组a的前k个元素进行逆值再存入a中。
用递归算法。不需要输出。
sankt兄的算法很好,但不是很符合要求
popy007 2005-11-17
  • 打赏
  • 举报
回复
#include <iostream>

using namespace std;

void inverse(int a[], int k)
{
static int c=0;
int t;


if(c==k) return;


t = a[c];
a[c] = a[k];
a[k] = t;

if(c==k-1 ) return;
++c;

inverse(a, k-1);

}

int main(int argc, char **argv)
{
int a[] = { 1, 2, 3, 4, 5, 6 };

inverse(a, 5);

for(int i=0; i<6; ++i)
cout<<a[i];

return 0;
}
sankt 2005-11-15
  • 打赏
  • 举报
回复
#include<iomanip.h>


void reverse_2(const char *str)
{
if(*str=='\0')
{
return ;
}

reverse_2(str+1);
cout<<*str;

}

void reverse(int a[],int k,int n)
{

if(k<n)
{
reverse(a,k+1,n);
cout<<setw(5)<<a[k];
}

}


int main()
{
char str[]="This is a C++ programmer. yishangshao.";

int a[]={1,2,3,4,5,6,7,8,9};

reverse_2(str);
cout<<endl;

reverse(a,0,9);
cout<<endl;

return 0;
}

Mr_Yang 2005-11-15
  • 打赏
  • 举报
回复
按顺序把序列压入栈中,再依次弹出不就得了。
nasi00 2005-11-15
  • 打赏
  • 举报
回复
你是说逆序输出么?

70,022

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧