zoukankan      html  css  js  c++  java
  • 递归算法

    递归算法是一种直接或间接调用自身的算法。一般通过函数或者子过程来完成,在函数或子过程的内部,编写代码直接或者间接的调用自己,即可完成递归操作。

    例一:求阶乘

    #include <stdio.h>
    int main(void){
        int i;
        printf("您要求出哪个数的阶乘?");
        scanf("%d",&i);
        printf("%d的阶乘结果为:%d\n",i,fact(i));
        getch();
        return 0;
    }
    int fact(int n){
        if(n<=1){
            return 1;
        }
        else{
            return n*fact(n-1);
        }
    }

     例二:十进制转化为其他数制,除n取余法

    #include <stdio.h>
    #include <string.h>
    //n是要转换的数字,b是要转化成的进制数 
    void convto(char *s,int n, int b){
        char bit[] = {"0123456789ABCDEF"};
        int len;
        if(n==0){
            strcpy(s,"");
            return;
        }
        convto(s,n/b,b);
        len = strlen(s);//这里的len在不断的变化, 
        s[len] = bit[n%b];
        s[len+1] = '\0';
    }
    int main(void){
        char s[80];
        int i,base,old;
        printf("请输入十进制数");
        scanf("%d",&old);
        printf("请输入转换的进制:");
        scanf("%d",&base);
        convto(s,old,base);
        printf("%s\n",s);
        getch();
        return 0;
    }
  • 相关阅读:
    Linked list
    mysql(1)

    mysql 1130 问题
    POST乱码
    GET乱码(2)
    GET乱码
    P65——练习题2.31
    2.1.9 C语言中的移位运算
    2.1中所想的问题:指针的类型有什么作用?
  • 原文地址:https://www.cnblogs.com/zhaojianbin/p/5955462.html
Copyright © 2011-2022 走看看