简单的递归问题

1、将任意正整数化为二进制形式

创新互联是一家专业提供长海企业网站建设,专注与成都做网站、网站设计、成都h5网站建设、小程序制作等业务。10年已为长海众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

(1)、代码如下:

#include

void digui(int n){ 
    int c;
    c = n%2;

    if(n > 0){ 
        digui(n/2);
        printf("%d", c); 
    }   
}

int main(void){
    int n; 

    scanf("%d", &n);
    digui(n);
    printf("\n");

    return 0;
}

(2)、运行结果:

简单的递归问题

2、将任意正整数转化为十六进制形式

(1)、代码如下:

#include

void digui(int n); 

void digui(int n){ 
    int c;
    c = n%16;

    if(n > 0){ 
        digui(n/16);
        if(c >= 10){
            printf("%c", c-10+'A');
        }else{
            printf("%d", c); 
        }   
    }   
}
int main(void){
    int n;

    scanf("%d", &n);
    digui(n);
    printf("\n");

    return 0;
}

(2)、运行结果:

简单的递归问题

3、求前N个整数和

(1)、代码如下:

#include

int sum(int n){ 
    if(n == 0){ 
        return 0;
    }   

    return n+sum(n-1);
}

int main(void){
    int number;
    int n;

    scanf("%d", &number);
    n = sum(number);
    printf("%d\n", n); 

    return 0;
}

(2)、结果如下:

简单的递归问题

4、利用递归求每个斐波那契数列

(1)、代码如下:

#include

int fibo(int num){
    if(num == 0){ 
        return 0;
    }   
    if(num == 1){ 
        return 1;
    }   

    return fibo(num-1)+fibo(num-2);
}

int main(void){
    int num;  //第4个fibionaqie(从0开始算起)数字是:0、1、1、2、3、5、8....
    int count;

    scanf("%d", &num);
    count = fibo(num);
    printf("%d\n", count);
}

(2)、运行结果:

简单的递归问题

5、利用递归求字符串的长度

(1)、代码如下:

#include
#include

int strLen(char *str);
int strLen(char *str){
    if(*str == 0){ 
        return;
    }   

    return 1+strLen(str+1);
}

int main(void){
    char str[80];
    int len;

    gets(str);
    len = strLen(str);
    printf("%d\n", len);

}

(2)、运行结果:

简单的递归问题


分享标题:简单的递归问题
本文网址:http://pwwzsj.com/article/jhspgj.html