最近在刷题,把同一类型的题目整合在一起,方便理解和学习。
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; } }
(算法题练的太少,这两道题目都参考了网上的做法,学习到了。希望多加练习以后能渐渐学会自己解决。)