头哥 函数递归调用

第1关 编写递归函数方法求x的n次方 (要求n>=0)

#include 
double power(double x,int n)
{
    /********** Begin **********/  
    if(n>=0)
        if(n==0) 
            return 1;
        else 
            return x*power(x,n-1);
    else {
        printf("n<0,data error!");
        return 0;
        }
    /********** End **********/
}

int main( )
{ 
    int n; 
    double  x, y;
    scanf("%lf,%d",&x,&n);
    y = power(x,n);
    if(y!=0)
    {
    	printf("%lf\n",y);
    }
    return 0;
}

第2关 编写递归函数求小于等于n的所有正整数之和

#include 
using namespace std;
int add(int n);
int main()
{
    int n;
    int b;
    cin>>n;
    b = add(n);
    cout<

 第3关 编写递归函数求数组元素的和

#include 
#define N 20
int Fun(int a[],int start,int end);
int main()
{
    int a[N], sum;
    int i,n,s,e;
    //printf("输入整数个数:");
    scanf("%d",&n);  
    //printf("输入%d个整数:\n",n);
    for(i=0;i

第4关 编写递归函数求数组元素的最大值 

 

#include 
#define N 20 
int max(int a,int b);
int Func(int a[],int s,int e);
int main()
{
	int a[N], m;
	int i,n,s,e;
	//printf("输入整数个数:");
	scanf("%d",&n);  
	//printf("输入%d个整数:\n",n);
	for(i=0;i b) return a;
    else return b;
    /********** End **********/
}
/**********定义Func()函数**********/ 
int Func(int a[],int s,int e)
{  
    /********** Begin **********/ 
    static int i= a[e];
    i = max(i,a[s]);
    if(s == e)  {
        return i;
        }
    else return Func(a,s+1,e);
    /********** End **********/
}

第5关 编写递归函数将所输入的整数以相反顺序打印出来,整数为0时终止输入

#include 
void reverse();             //reverse函数的声明	
int  main()
{   
    reverse();
    printf("\n");
    return 0;
}
/**********定义reverse ()函数**********/ 
void reverse()
{
    /********** Begin **********/ 
    int a[100],n=0,temp;
    scanf("%d",&a[n]);
    while (a[n] != 0){
        n++;
        scanf("%d",&a[n]);
    }
    for(int i=0,j=n-1;i

第6关 编写递归函数将所输入的5个字符,以相反顺序打印出来

#include 
void func(int n);
int  main()
{
    //printf("please input 5 numbers:");
    func(5);
    return 0;
}
/**********定义func ()函数**********/ 
void func(int n)
{
    /********** Begin **********/ 
    char a[n],temp;
    for(int i=0;i

 第7关 编写程序输入整数N,打印Fibonacci数列的前N项,要求用递归函数实现

#include 
int F(int n) ;           
int main()
{
    int n,y,i;
    scanf("%d",&n);
    for(i=0;i<=n;i++)
    {
    y= F(i) ;
    printf("%d ",y);
    }
    printf("\n");
    return 0;
}
/**********定义F()函数**********/ 
int F(int n) 
{
    /********** Begin **********/ 
    if(n<2){
        return 1;
    }else{
        return  F(n-1)+F(n-2);
    }

    /********** End **********/
}

 

 

你可能感兴趣的:(数据结构,算法,数据结构,c++)