我如何在递归开始返回的时候执行新的语句比如调用一个函数?
说的明白点就是比如我有如下递归函数:recursion(int n){
if(n==0) return 0;
else{
printf("%d",n);
return recursion(n-1);
}
}recursion(5);现在返回的结果应该是
54521那现在我想在递归中返回12345,应该怎么写?(当然你不能改变递归调用的顺序)
说的明白点就是比如我有如下递归函数:recursion(int n){
if(n==0) return 0;
else{
printf("%d",n);
return recursion(n-1);
}
}recursion(5);现在返回的结果应该是
54521那现在我想在递归中返回12345,应该怎么写?(当然你不能改变递归调用的顺序)
if(n==0) {
printf("%d",n+1);
return 0;
}
else
return recursion(n-1);
}>>当然你不能改变递归调用的顺序)
只能这么改,如果不能改变语句顺序的话,就是神仙也做不到啊。
{
if(n==0) return 0;
else
{
recursion(n-1);
printf("%d",n);
return 1;
}
}
int g_iCount = 0;语句printf("%d", g_iCount++);
if(n==0) return 0;
else{
printf("%d",6-n);
return recursion(n-1);
}
}recursion(5);
if(n==0) return 0;
else{
printf("%d",6-n);
return recursion(n-1);
}
}recursion(5);
if(n==0) {
printf("%d",n+1);
return 0;
}
else
return recursion(n-1);
}#include "stdlib.h"
void main(void)
{
recursion(5);
}
int result;
if(n<1) return 0;
if(n==1) {
printf("%d",n);
return 1;
}
else {
result = recursion(n-1);
printf("%d",n);
return result;
}
}
{
if(n==0)return 0;
else return test(n-1)+print(n);
}int print(int n)
{
printf("%d",n);
return 1;
}
recursion(n-1);
if(n==0) return 0;
else{
printf("%d",n);}
}recursion(5);
if(n==6) return 6;
else{
printf("%d",n);
return recursion(n+1);
}
}recursion(1);
if(n==0) return 0;
else{
printf("%d",n);
return recursion(n-1);
}
}
int l=5;
int k=l+1;
recursion(l);
{
if (n==0)
{
return 0;
printf("%d",n+1);
else
if ((recursion(n-1)))
printf("%d",n);
return 1;
}
if(n==0) return 0;
else{return recursion(n-1);
printf("%d",n);}
}recursion(5);
recursion(int n)
{
if (n==0)
{
return 0;
printf("%d",n+1); //特殊处理
}
else
if ((recursion(n-1)))
printf("%d",n);
return 1;
}
{
if(n==0)
return 0;
else
{
return recursion(6-n);
printf("%d",n);
}
}
{
if(n==0)
return 0;
else
{
return recursion(6-n);
printf("%d",n);
}
}