java算法技巧续....利用(递归实现)

来源:互联网 发布:java菱形代码 编辑:程序博客网 时间:2024/06/05 05:01
      /*求一个数字的二进制编码:除2除余倒序相拼接*/
    //算法一:利用循环去写
    public void getBinary(int num){
        //这个数字的商
        int a = num;
        //这个数字的余数
        int b = 0;
        String sb = "";
        while(a!=0){
            b =a%2;
            sb = b + sb;
            a = a/2;
        }
        System.out.println(sb);
    }
    //算法二:利用递归
    public void getBinary1(int num){
        if(num==0){
            return;
        }else{
            getBinary1(num/2);
            System.out.print(num%2);
        }
    }
    
    /*实现1!+2!+3!+.....+99!*/
    //利用递归写:
    public double sum(int num){
        if(num==0){
            throw new RuntimeException("您输入的数字非法");
        }
        if(num==1){
            return 1;
        }
        return mul(num)+sum(num-1);
    }
    
    public double mul(int num){
        if(num==1){
            return 1;
        }
        return num*mul(num-1);

    }


待续.........


0 0
原创粉丝点击