水仙花數

public class water {


public static void main(String[] args) {

method1(100,1000);
}
//打印出範圍內所有的水仙花數
public static void method(int start,int end) {

for(int i = start;i<=end;i++) {
if(isWaterNum(i)) {
System.out.println(i);
}
}
}
//打印出範圍內所有的水仙花數數量
public static void method1(int start,int end) {
int count=0;
for(int i = start;i<=end;i++) {
if(isWaterNum(i)) {
count++;
}
}
System.out.println(count);
}
//判斷一個數是幾位數
public static int number(int num) {

int bit=1;
while(num/10>0) {
bit=bit+1;
num=(num-num%10)/10;
}
return bit;

}
//判斷一個數是不是水仙花數
public static boolean isWaterNum(int num) {
int bits = number(num);//1234  4
int [] numbers = new int[bits];
int [] sums = new int[bits];
int total=0;
for(int i=0;i<bits;i++) {
numbers[i]=num%(int)Math.pow(10, bits-i)/(int)Math.pow(10, bits-1-i);
sums[i] = (int)Math.pow(numbers[i],bits);
total+=sums[i];
}

if(num==total) {
return true;
}else {
return false;
}
}


}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章