给我个C语言递归调用的例子吧

就是求F(n)=2个分支的那种 谁给个范例
2024-11-25 02:43:21
推荐回答(3个)
回答1:

fibonacci数列,就是后面那个数为前面两个数之和。

//参数为选择第几个数,返回值为相应的值
int fib(int n)
{
if (n == 1 || n== 2) return 1;
else return fib(n-1)+fib(n-2);
}

这个例子很经典的,记得讲机器语言那本书就用这个来作练习。

回答2:

/*归并排序算法*/
#include
typedef int keytype;
void merge(keytype *,int,int,int);
void merge_sort(keytype *,int,int);
int main()
{
using namespace std;
keytype a[11]={1,5,8,4,6,3,8,1,3,8,2};
merge_sort(a,0,9);
for(int i=0;i<11;++i)
cout<return 0;
}
void merge_sort(keytype *a,int low,int up)
{
int q=0;
if(low{
q=(low+up)/2;
merge_sort(a,low,q);
merge_sort(a,q+1,up);
merge(a,low,q,up);
}
}
void merge(keytype *a,int low,int mid,int up)
{
int len1=mid-low+1;
int len2=up-mid;
keytype *L=new keytype[len1+1];
keytype *R=new keytype[len2+1];
for(int i=0;iL[i]=a[low+i];
for(int i=0;iR[i]=a[mid+i+1];
L[len1]=R[len2]=32767;

int i=0,j=0;
for(int k=low;k<=up;++k)
{
if(L[i]<=R[j])
{
a[k]=L[i];
++i;
}
else
{
a[k]=R[j];
++j;
}
}
delete[] L;
delete[] R;
}
例子还有很多,二叉树的递归遍历等等

回答3:

long abc(long a){
if(a==0||a==1) return 1;
else{
return a*abc(a-1);
}
}