Java怎么樣求水仙花數呢


書上的練習題,自己不會做,在網上復制別人的代碼的,自己不理解,而且出現很多錯誤!
/*

需求:打印出1~10000范圍中的所有“水仙花數”,所謂“水仙花數”是指一個3位數,其各位數立方和等於該數本身。
思路:1,水仙花數是一個三位數,所以設置三個變量,
      2,這三個變量的立方相加等於這三個變量自由組合的數字。
步驟:1,定義三個變量a,b,c.這三個變量為整數。
  2,a的立方+b的立方+c的立方=abc,acb,bac,bca,cab,cba.
*/
/*
public class Test01{
 public static void main(String arg[])
 {   
   for(int x=100;x<10000;x++)
   if(isNumber(x))
   System.out.println(x+"is Number");
  }
  static Boolean isNumber(int x)
  {
   int i,j,k;
   i=x/100;
   j=(x-i*100)/10;
   k=x%10;
   if(x==i*i*i+j*j*j+k*k*k)
       return true;
   else
       return false;
      }
   }
153,370,371,407,這個只把三位數算在里面了,還把1000.1001算在里面啦!為什么沒有顯示4位數的水仙花數。
*/

/*
public class Test01{
public boolean fun(int i) {
int s = 0;
        int n = (i + "").length();
        for (int k = 1; k <= n; k++) {
            int t1 = (int) (i / Math.pow(10, k - 1));
            int t2 = (int) Math.pow((t1 % 10), n);
            s += t2;
        }
        if (s == i) {
            return true;
        } else {
            return false;
        }
    }
    public static void main(String[] args) {
        Test sub = new Test();
        for (int a = 100; a <= 999999999; a++) {
            if (sub.fun(a)) {
                System.out.println(a + "是水仙花數");
            }
        }
    }
}
*/

34 个解决方案

#1


class  ShuiXian
{
public static void main(String[] args) 
{
//x用來臨時保存百位十位和個位
int x=0,y=0,temp=0;



for(int i = 100;i<150;i++)
{
//System.out.println("i:" + i);
//temp=i;
x=i/100; // 取出百位   3      345
y=x*x*x;   //用y計數,得到了百位數的立方和。
//System.out.println("y_1:" + y);
i-=x*100;//  得到2位數  45

x=i/10;//取得十位上的數字4 
y+=x*x*x;  //把第二位數的立方和加上  y=9+64
//System.out.println("y_2:" + y);

i-=x*10;     //得到個位上的數
y+=i*i*i;
//System.out.println("y_3:" + y);

if(i==y)
{
System.out.println("temp:" + temp);
}

}

}
}

你也可以用Math.pow()這個方法算立方值

#2


我是初學者,感謝指教!!

#3


public class kl 
{
public static void main(String args[])
{
A aa = new A();
}
}

class A {
private int a, b, c, d, sum;
public A(){
for(a=100; a<1000; a++){
b = a/100;
c = (a-b*100)/10;
d = a%10;
sum = b*b*b + c*c*c + d*d*d;
if(sum == a)
System.out.println(a);
}
}
}


樓主學過其他語言嗎?
可以好好想想其流程
這個和那個一樣——
class kl {
public static void main(String args[]) {
int a, b, c, d, sum;
for (a = 100; a < 1000; a++) {
b = a / 100;
c = (a - b * 100) / 10;
d = a % 10;
sum = b * b * b + c * c * c + d * d * d;
if (sum == a)
System.out.println(a);
}
}
}

水仙花數十三位數,是1~1000以內,樓主你怎么都10000了

#4


引用 3 樓 u012421456 的回復:
水仙花數 三位數,是1~1000以內,樓主你怎么都10000了

打錯字了

#5


樓上都說過了~稍微補充一下~最好用個int[10]數組把0~9的立方存起來提高效率

#6


樓上大神已貼代碼,路過打醬油

#7


10進制的水仙花數是有限個的,試着寫程序找到所有水仙花數才比較有意義

#8



import java.math.*;
import java.util.*;

public class NarcissisticNumber {

    public static void main(final String[] args) {
        System.out.println("水仙花數列表");
        for (BigInteger bigInteger = new BigInteger("0");
                !bigInteger.equals(new BigInteger("115132219018763992565095597973971522402"));
                bigInteger = bigInteger.add(new BigInteger("1"))) {
            if (isNarcissisticNumber(bigInteger)) {
                System.out.println(getDateTime() + "\t" + bigInteger);
            }
        }
    }

    /**
     * 判斷一個數是否為水仙花數:一個N位整數,其各位數字的N次方的和等於該數本身
     *
     * @param number
     * @return 當輸入的參數為水仙花數時返回true,否則返回false
     */
    public static boolean isNarcissisticNumber(final BigInteger number) {
        BigInteger sumOfDigitPower = new BigInteger("0"); // 各位數字的N次方的和
        char[] digitArray = number.toString().toCharArray(); // 各位數字的數組
        for (char digit : digitArray) {
            sumOfDigitPower = sumOfDigitPower.add( // 求和
                    BigInteger.valueOf(
                            Character.digit(digit, 10) // 各位數字
                    ).pow(digitArray.length) // N次方
            );
        }
        return sumOfDigitPower.equals(number);
    }

    /**
     * @return 返回包含當前日期和時間的字符串
     */
    public static String getDateTime() {
        Calendar calendar = Calendar.getInstance();
        return ""
                + calendar.get(Calendar.YEAR) + "/"
                + (calendar.get(Calendar.MONTH) + 1) + "/"
                + calendar.get(Calendar.DATE) + " "
                + calendar.get(Calendar.HOUR_OF_DAY) + ":"
                + calendar.get(Calendar.MINUTE) + ":"
                + calendar.get(Calendar.SECOND) + ":"
                + calendar.get(Calendar.MILLISECOND);
    }
}


運行結果:
水仙花數列表
2014/6/7 18:3:12:297 0
2014/6/7 18:3:12:323 1
2014/6/7 18:3:12:324 2
2014/6/7 18:3:12:324 3
2014/6/7 18:3:12:324 4
2014/6/7 18:3:12:324 5
2014/6/7 18:3:12:324 6
2014/6/7 18:3:12:324 7
2014/6/7 18:3:12:325 8
2014/6/7 18:3:12:325 9
2014/6/7 18:3:12:329 153
2014/6/7 18:3:12:336 370
2014/6/7 18:3:12:336 371
2014/6/7 18:3:12:337 407
2014/6/7 18:3:12:353 1634
2014/6/7 18:3:12:398 8208
2014/6/7 18:3:12:402 9474
2014/6/7 18:3:12:613 54748
2014/6/7 18:3:12:689 92727
2014/6/7 18:3:12:689 93084
2014/6/7 18:3:13:484 548834
2014/6/7 18:3:15:395 1741725
2014/6/7 18:3:19:467 4210818
2014/6/7 18:3:28:652 9800817
2014/6/7 18:3:28:857 9926315
2014/6/7 18:3:53:991 24678050
2014/6/7 18:3:53:992 24678051
2014/6/7 18:5:45:778 88593477
2014/6/7 18:7:28:62 146511208
2014/6/7 18:17:30:115 472335975
2014/6/7 18:19:24:537 534494836
2014/6/7 18:31:6:765 912985153


上面是前32個水仙花數
對於10進制數來講,地球上總共有89個水仙花數,最大的是115132219018763992565095597973971522401
由於沒有“礦機”,想用個人電腦把所有水仙花數都打出來還是有一定難度的

#9


水仙花數的定義是:一個N位整數,其各位數字的N次方的和等於該數本身

也就是說,對於3位數來講,是3次方
對於4位數來講,是4次方

#10


謝謝啦,我剛開始學呢!你太厲害啦,寫出了這么多呢

#11


    public static void main(String[] args) {
        final int[] cubes = {0,1,8,27,64,125,216,343,512,729};
        for(int a = 1; a < 10; ++a)
            for(int b = 0; b < 10; ++b)
                for(int c = 0; c < 10; ++c){
                    int r = cubes[a] + cubes[b] + cubes[c];
                    if(r == 100 * a + 10 * b + c)
                        System.out.println(r);
                }
    }

#12



public class Main {
    
public static void main(String[] args) {
int k,m,n;
for(int i=101;i<1000;i++){
k=Integer.parseInt((i+"").substring(0, 1));//百位
m=Integer.parseInt((i+"").substring(1, 2));//十位
n=Integer.parseInt((i+"").substring(2, 3));//個位
if((k*k*k+m*m*m+n*n*n)==i)
System.out.println(i);
}
    }
}

#13



換一種:

public class Main {
    
public static void main(String[] args) {
int k,m,n;
char c[]=new char[3];
for(int i=101;i<1000;i++){
c=(i+"").toCharArray();
k=c[0]-'0';//百位
m=c[1]-'0';//十位
n=c[2]-'0';//個位
if((k*k*k+m*m*m+n*n*n)==i)
System.out.println(i);
}
    }
}

#14


原理是這樣的你先輸入一個m(三位數自己隨意設定a1a2a3)——>把m除100取得千位(a1=m/100),然后取模得十位(a2=m%100%10),a1=m%10。取出來后判斷是否符合你要求的不就好了。原理懂了代碼很簡單的

#15


引用 8 樓 Android_iPhone 的回復:

import java.math.*;
import java.util.*;

public class NarcissisticNumber {

    public static void main(final String[] args) {
        System.out.println("水仙花數列表");
        for (BigInteger bigInteger = new BigInteger("0");
                !bigInteger.equals(new BigInteger("115132219018763992565095597973971522402"));
                bigInteger = bigInteger.add(new BigInteger("1"))) {
            if (isNarcissisticNumber(bigInteger)) {
                System.out.println(getDateTime() + "\t" + bigInteger);
            }
        }
    }

    /**
     * 判斷一個數是否為水仙花數:一個N位整數,其各位數字的N次方的和等於該數本身
     *
     * @param number
     * @return 當輸入的參數為水仙花數時返回true,否則返回false
     */
    public static boolean isNarcissisticNumber(final BigInteger number) {
        BigInteger sumOfDigitPower = new BigInteger("0"); // 各位數字的N次方的和
        char[] digitArray = number.toString().toCharArray(); // 各位數字的數組
        for (char digit : digitArray) {
            sumOfDigitPower = sumOfDigitPower.add( // 求和
                    BigInteger.valueOf(
                            Character.digit(digit, 10) // 各位數字
                    ).pow(digitArray.length) // N次方
            );
        }
        return sumOfDigitPower.equals(number);
    }

    /**
     * @return 返回包含當前日期和時間的字符串
     */
    public static String getDateTime() {
        Calendar calendar = Calendar.getInstance();
        return ""
                + calendar.get(Calendar.YEAR) + "/"
                + (calendar.get(Calendar.MONTH) + 1) + "/"
                + calendar.get(Calendar.DATE) + " "
                + calendar.get(Calendar.HOUR_OF_DAY) + ":"
                + calendar.get(Calendar.MINUTE) + ":"
                + calendar.get(Calendar.SECOND) + ":"
                + calendar.get(Calendar.MILLISECOND);
    }
}


運行結果:
水仙花數列表
2014/6/7 18:3:12:297 0
2014/6/7 18:3:12:323 1
2014/6/7 18:3:12:324 2
2014/6/7 18:3:12:324 3
2014/6/7 18:3:12:324 4
2014/6/7 18:3:12:324 5
2014/6/7 18:3:12:324 6
2014/6/7 18:3:12:324 7
2014/6/7 18:3:12:325 8
2014/6/7 18:3:12:325 9
2014/6/7 18:3:12:329 153
2014/6/7 18:3:12:336 370
2014/6/7 18:3:12:336 371
2014/6/7 18:3:12:337 407
2014/6/7 18:3:12:353 1634
2014/6/7 18:3:12:398 8208
2014/6/7 18:3:12:402 9474
2014/6/7 18:3:12:613 54748
2014/6/7 18:3:12:689 92727
2014/6/7 18:3:12:689 93084
2014/6/7 18:3:13:484 548834
2014/6/7 18:3:15:395 1741725
2014/6/7 18:3:19:467 4210818
2014/6/7 18:3:28:652 9800817
2014/6/7 18:3:28:857 9926315
2014/6/7 18:3:53:991 24678050
2014/6/7 18:3:53:992 24678051
2014/6/7 18:5:45:778 88593477
2014/6/7 18:7:28:62 146511208
2014/6/7 18:17:30:115 472335975
2014/6/7 18:19:24:537 534494836
2014/6/7 18:31:6:765 912985153


上面是前32個水仙花數
對於10進制數來講,地球上總共有89個水仙花數,最大的是115132219018763992565095597973971522401
由於沒有“礦機”,想用個人電腦把所有水仙花數都打出來還是有一定難度的

高手在人間啊

#16


public class shuixian
{
    public static void main(String args[])
    {
        shuixianhua sxh = new shuixianhua();
    }
}
 
class shuixianhua {
    private int a, b, c, d, sum;
    public shuixianhua(){
        for(a=100; a<1000; a++){
            b = a/100;
            c = (a-b*100)/10;
            d = a%10;
            sum = b*b*b + c*c*c + d*d*d;
            if(sum == a)
                System.out.println(a);
        }
    }
}

#17


核心代碼:


int i;
        static final int MAX = X;// (X填寫你要尋找的水仙花數的范圍)
int a,b,c;
for(i=0;i<=X;i++)
{
a=pow(i/100,3);//百位~
b=pow((i%100)/10,3);//十位!
c=pow((i%10),3);//個位`
if((a+b+c)==i)
{
System.out.println("The Flower number is " + i);
}
}

#18




引用 17 樓 qq695181966 的回復:
核心代碼:


int i;
        static final int MAX = X;// (X填寫你要尋找的水仙花數的范圍)
int a,b,c;
for(i=0;i<=X;i++)
{
a=pow(i/100,3);//百位~
b=pow((i%100)/10,3);//十位!
c=pow((i%10),3);//個位`
if((a+b+c)==i)
{
System.out.println("The Flower number is " + i);
}
}

說明一下  java.Math.pow(double x , double y );表示的是x的y次方 剛才直接在編輯欄寫的 定義的變量類型錯了 你自己改一下就OK了

#19



public class Test3 {

/**
 * 題目:打印出所有的 "水仙花數 ",
 * 所謂 "水仙花數 "是指一個三位數,其各位數字立方和等於該數本身。
 * 例如:153是一個 "水仙花數 ",
 * 因為153=1的三次方+5的三次方+3的三次方。
 */

static int num1;
static int num2;
static int num3;

public static void main(String[] args) {
Test3.showInfo(1000);

}

public static void showInfo(int n)
{
for(int sum=101; sum<n; sum++)//三位數,100不可能是
{
num1 = sum / 100;//第一位
num2 = sum % 100 / 10;//求余,兩位,除10小數點左移,得第二位
num3 = sum % 10;//求余,一位,得第三位
if((num1*num1*num1 + num2*num2*num2 + num3*num3*num3) == sum)
{
System.out.println(sum+"是一個水仙花數"); 
}
}
}
}

#20


引用 8 樓 Android_iPhone 的回復:

0到底算不算是呢

#21


0^0 ==  1 != 0

#22


#23


public static void main(String[] args) {
int a,b,c,s;
for(int i = 100; i <= 999; i++){
a = i / 100;
b = i % 100 / 10;
c = i % 10;
s = a*a*a + b*b*b + c*c*c;
if(i == s){
System.out.println(i);
}
}
}

#24


引用 20 樓 u012724379 的回復:
Quote: 引用 8 樓 Android_iPhone 的回復:

0到底算不算是呢


一個N位整數,其各位數字的N次方的和等於該數本身

0是1位整數,各位數字的1次方的和為0,等於該數本身

(0^1) == 0

#25


引用 21 樓 zhouchongzxc 的回復:
0^0 ==  1 != 0


(0^1) == 0

#26


引用 24 樓 Android_iPhone 的回復:
Quote: 引用 20 樓 u012724379 的回復:

Quote: 引用 8 樓 Android_iPhone 的回復:

0到底算不算是呢


一個N位整數,其各位數字的N次方的和等於該數本身

0是1位整數,各位數字的1次方的和為0,等於該數本身

(0^1) == 0


我見過的一種說法是:一個N位整數,其各位數字的N次方的和等於該數本身(N >= 3)

#27


引用 26 樓 u012724379 的回復:
Quote: 引用 24 樓 Android_iPhone 的回復:

Quote: 引用 20 樓 u012724379 的回復:

Quote: 引用 8 樓 Android_iPhone 的回復:

0到底算不算是呢


一個N位整數,其各位數字的N次方的和等於該數本身

0是1位整數,各位數字的1次方的和為0,等於該數本身

(0^1) == 0


我見過的一種說法是:一個N位整數,其各位數字的N次方的和等於該數本身(N >= 3)


哦,也有可能有這種說法吧,原來的定義參考了維基百科,應該算是比較權威的

#28


引用 8 樓 Android_iPhone 的回復:

import java.math.*;
import java.util.*;

public class NarcissisticNumber {

    public static void main(final String[] args) {
        System.out.println("水仙花數列表");
        for (BigInteger bigInteger = new BigInteger("0");
                !bigInteger.equals(new BigInteger("115132219018763992565095597973971522402"));
                bigInteger = bigInteger.add(new BigInteger("1"))) {
            if (isNarcissisticNumber(bigInteger)) {
                System.out.println(getDateTime() + "\t" + bigInteger);
            }
        }
    }

    /**
     * 判斷一個數是否為水仙花數:一個N位整數,其各位數字的N次方的和等於該數本身
     *
     * @param number
     * @return 當輸入的參數為水仙花數時返回true,否則返回false
     */
    public static boolean isNarcissisticNumber(final BigInteger number) {
        BigInteger sumOfDigitPower = new BigInteger("0"); // 各位數字的N次方的和
        char[] digitArray = number.toString().toCharArray(); // 各位數字的數組
        for (char digit : digitArray) {
            sumOfDigitPower = sumOfDigitPower.add( // 求和
                    BigInteger.valueOf(
                            Character.digit(digit, 10) // 各位數字
                    ).pow(digitArray.length) // N次方
            );
        }
        return sumOfDigitPower.equals(number);
    }

    /**
     * @return 返回包含當前日期和時間的字符串
     */
    public static String getDateTime() {
        Calendar calendar = Calendar.getInstance();
        return ""
                + calendar.get(Calendar.YEAR) + "/"
                + (calendar.get(Calendar.MONTH) + 1) + "/"
                + calendar.get(Calendar.DATE) + " "
                + calendar.get(Calendar.HOUR_OF_DAY) + ":"
                + calendar.get(Calendar.MINUTE) + ":"
                + calendar.get(Calendar.SECOND) + ":"
                + calendar.get(Calendar.MILLISECOND);
    }
}


運行結果:
水仙花數列表
2014/6/7 18:3:12:297 0
2014/6/7 18:3:12:323 1
2014/6/7 18:3:12:324 2
2014/6/7 18:3:12:324 3
2014/6/7 18:3:12:324 4
2014/6/7 18:3:12:324 5
2014/6/7 18:3:12:324 6
2014/6/7 18:3:12:324 7
2014/6/7 18:3:12:325 8
2014/6/7 18:3:12:325 9
2014/6/7 18:3:12:329 153
2014/6/7 18:3:12:336 370
2014/6/7 18:3:12:336 371
2014/6/7 18:3:12:337 407
2014/6/7 18:3:12:353 1634
2014/6/7 18:3:12:398 8208
2014/6/7 18:3:12:402 9474
2014/6/7 18:3:12:613 54748
2014/6/7 18:3:12:689 92727
2014/6/7 18:3:12:689 93084
2014/6/7 18:3:13:484 548834
2014/6/7 18:3:15:395 1741725
2014/6/7 18:3:19:467 4210818
2014/6/7 18:3:28:652 9800817
2014/6/7 18:3:28:857 9926315
2014/6/7 18:3:53:991 24678050
2014/6/7 18:3:53:992 24678051
2014/6/7 18:5:45:778 88593477
2014/6/7 18:7:28:62 146511208
2014/6/7 18:17:30:115 472335975
2014/6/7 18:19:24:537 534494836
2014/6/7 18:31:6:765 912985153


上面是前32個水仙花數
對於10進制數來講,地球上總共有89個水仙花數,最大的是115132219018763992565095597973971522401
由於沒有“礦機”,想用個人電腦把所有水仙花數都打出來還是有一定難度的


2-9是水仙花數么 表嚇我

#29


引用 28 樓 u011636482 的回復:
Quote: 引用 8 樓 Android_iPhone 的回復:


import java.math.*;
import java.util.*;

public class NarcissisticNumber {

    public static void main(final String[] args) {
        System.out.println("水仙花數列表");
        for (BigInteger bigInteger = new BigInteger("0");
                !bigInteger.equals(new BigInteger("115132219018763992565095597973971522402"));
                bigInteger = bigInteger.add(new BigInteger("1"))) {
            if (isNarcissisticNumber(bigInteger)) {
                System.out.println(getDateTime() + "\t" + bigInteger);
            }
        }
    }

    /**
     * 判斷一個數是否為水仙花數:一個N位整數,其各位數字的N次方的和等於該數本身
     *
     * @param number
     * @return 當輸入的參數為水仙花數時返回true,否則返回false
     */
    public static boolean isNarcissisticNumber(final BigInteger number) {
        BigInteger sumOfDigitPower = new BigInteger("0"); // 各位數字的N次方的和
        char[] digitArray = number.toString().toCharArray(); // 各位數字的數組
        for (char digit : digitArray) {
            sumOfDigitPower = sumOfDigitPower.add( // 求和
                    BigInteger.valueOf(
                            Character.digit(digit, 10) // 各位數字
                    ).pow(digitArray.length) // N次方
            );
        }
        return sumOfDigitPower.equals(number);
    }

    /**
     * @return 返回包含當前日期和時間的字符串
     */
    public static String getDateTime() {
        Calendar calendar = Calendar.getInstance();
        return ""
                + calendar.get(Calendar.YEAR) + "/"
                + (calendar.get(Calendar.MONTH) + 1) + "/"
                + calendar.get(Calendar.DATE) + " "
                + calendar.get(Calendar.HOUR_OF_DAY) + ":"
                + calendar.get(Calendar.MINUTE) + ":"
                + calendar.get(Calendar.SECOND) + ":"
                + calendar.get(Calendar.MILLISECOND);
    }
}


運行結果:
水仙花數列表
2014/6/7 18:3:12:297 0
2014/6/7 18:3:12:323 1
2014/6/7 18:3:12:324 2
2014/6/7 18:3:12:324 3
2014/6/7 18:3:12:324 4
2014/6/7 18:3:12:324 5
2014/6/7 18:3:12:324 6
2014/6/7 18:3:12:324 7
2014/6/7 18:3:12:325 8
2014/6/7 18:3:12:325 9
2014/6/7 18:3:12:329 153
2014/6/7 18:3:12:336 370
2014/6/7 18:3:12:336 371
2014/6/7 18:3:12:337 407
2014/6/7 18:3:12:353 1634
2014/6/7 18:3:12:398 8208
2014/6/7 18:3:12:402 9474
2014/6/7 18:3:12:613 54748
2014/6/7 18:3:12:689 92727
2014/6/7 18:3:12:689 93084
2014/6/7 18:3:13:484 548834
2014/6/7 18:3:15:395 1741725
2014/6/7 18:3:19:467 4210818
2014/6/7 18:3:28:652 9800817
2014/6/7 18:3:28:857 9926315
2014/6/7 18:3:53:991 24678050
2014/6/7 18:3:53:992 24678051
2014/6/7 18:5:45:778 88593477
2014/6/7 18:7:28:62 146511208
2014/6/7 18:17:30:115 472335975
2014/6/7 18:19:24:537 534494836
2014/6/7 18:31:6:765 912985153


上面是前32個水仙花數
對於10進制數來講,地球上總共有89個水仙花數,最大的是115132219018763992565095597973971522401
由於沒有“礦機”,想用個人電腦把所有水仙花數都打出來還是有一定難度的


2-9是水仙花數么 表嚇我

好吧 我錯了 是N次方啊 

#30


謝謝啦,真犀利!!

#31


數學上是不是規定0沒有0次冪

#32


引用 26 樓 u012724379 的回復:
我見過的一種說法是:一個N位整數,其各位數字的N次方的和等於該數本身(N >= 3)

,這才是水仙花數

#33


/**
 * 打印出1~10000范圍中的所有“水仙花數”,所謂“水仙花數”是指一個3位數,其各位數立方和等於該數本身。
 * @author lenovo
 *
 */
public class TestNarcissus {
    
static int result = 0;
static int unit=0;//各位
static int decade = 0;//十位
static int hunder = 0;//百位
 public static int  accountNumber(int a,int b,int c){
 result = a*a*a+b*b*b+c*c*c;
 return result;
 }
 public static boolean Calculation(int toCal){
 hunder = toCal/100;
 decade = (toCal-100*hunder)/10;
 unit = toCal - 100*hunder-10*decade;
 if(toCal==accountNumber(hunder, decade, unit)){
return true; 
 }
 return false;
 }
 public static void main(String[] args){
 for(int i = 1;i<10000;i++){
 if(Calculation(i)){
 System.out.println(i);
 }
 }
 }
}

#34


n位數的水仙花數
public class Narcissistic{

public static boolean narcissistic(int num){
boolean flag = false;
int n=0, sum=0, copy=num;
n = (num+"").length();
for(int i=0; i<n; i++){
sum += (int)Math.pow(num%10, n); 
num /= 10;
}
if(sum == copy)
flag = true;
return flag;
}

public static void main(String args[]){
for(int i = 0; i<=99999; i++){
if(narcissistic(i))
System.out.print(i+" ");
}
}
}

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com