自己用递归写了一个求水仙花数的算法。貌似性能不是特别好。就当举个反面例子好了,这是我的代码:
`package aTest1;
/**
* Created by 令照辉 on 1/24/2016.
*
* 求水仙花数
*
*/
public class Test01 {
private int get(int num){
if(num < 10){
return num*num*num;
}else {
return (num % 10)*(num % 10)*(num % 10) + get((num-num%10)/10);
}
}
public void getNum(){
for (int i=100;i<=999;i++){
if(i == get(i)){
System.out.println(i);
}
}
}
public static void main(String[] args) {
long begin = System.nanoTime();
new Test01().getNum();
long end = System.nanoTime();
System.out.println("use time:"+(end-begin)/1000+"ms");
}
}
虽然运行结果没有错,但是仔细分析分析就可以可以发现这个程序的时间复杂度是n方成正比,而不是和n成正比。`