189 8069 5689

简单的递归问题-创新互联

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

网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、成都微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了藤县免费建站欢迎大家使用!

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

简单的递归问题

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享名称:简单的递归问题-创新互联
文章来源:http://jkwzsj.com/article/dephig.html

其他资讯