温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

简单的递归问题

发布时间:2020-07-07 11:42:59 来源:网络 阅读:464 作者:汇天下豪杰 栏目:编程语言

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

(1)、代码如下:

#include<stdio.h>

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<stdio.h>

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<stdio.h>

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<stdio.h>

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<stdio.h>
#include<string.h>

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)、运行结果:

简单的递归问题




向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI