• 递归算法


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

    例一:求阶乘

    #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;
    }
  • 相关阅读:
    synchronized关键字的用法
    for循环删除集合陷阱
    Java之可变参数
    下拉菜单中的Option对象
    JavaScript数组
    线程
    尝试用代码写博客
    环境配置大全
    3中边缘检测算子
    caffe新手入门
  • 原文地址:https://www.cnblogs.com/zhaojianbin/p/5955462.html
Copyright © 2020-2023  润新知