领扣刷题——关于数

最近在刷题,把同一类型的题目整合在一起,方便理解和学习。

1、写一个程序来检测一个整数是不是丑数

  丑数的定义是,只包含质因子 2, 3, 5 的正整数。比如 6, 8 就是丑数,但是 14 不是丑数因为他包含了质因子 7。

    public boolean isUgly(int num) {
        // write your code here
        if(num==1){
            return true;
        }else{
            while(num%2==0){
                num=num/2;
            }
            while(num%3==0){
                num=num/3;
            }
            while(num%5==0){
                num=num/5;
            }
            if(num==1){
                return true;
            }
        }
        return false;
    }

  2、判断水仙花数(eg:3位数:153=1^3+3^3+5^3)

public List<Integer> getNarcissisticNumbers(int n){
    List<Integer> list=new ArrayList<>();
    if(n==1){
        for(int i=0;i<10;i++){
            list.add(i);
        }
        return list;
    }else if(n==2){
        return list;
    }else{
        for(int i=Math.pow(10,n-1);i<Math.pow(10,n);i++){
            String istring=String.valueOf(i);
            for(int j=0;j<n;j++){
                int num=num+Math.pow(Integer.valueOf(istring.subString(j,j+1)),n);
            }
            if(num==i){
                list.add(i);
            }
        }
        return list;
    }
}

(算法题练的太少,这两道题目都参考了网上的做法,学习到了。希望多加练习以后能渐渐学会自己解决。)

原文地址:https://www.cnblogs.com/zyycumt/p/13458886.html