首頁  >  文章  >  Java  >  Java實作10-100000之間的水仙花數演算法的範例

Java實作10-100000之間的水仙花數演算法的範例

黄舟
黄舟原創
2017-10-18 10:16:052003瀏覽

這篇文章主要介紹了Java求10到100000之間的水仙花數演算法,結合實例形式分析了水仙花數的概念及相應的java演算法實現技巧,需要的朋友可以參考下

本文實例講述了Java求10到100000之間的水仙花數演算法。分享給大家參考,具體如下:

水仙數:

概念:水仙數是指一個n 位數( n≥3 ),它的每個位上的數字的n 次方和等於它本身。 (例如:1^3 + 5^3+ 3^3 = 153)

演算法思路分析:這個演算法我們分兩個步驟來進行;第一:我們做一個求一個數的位數的函數;第二:我們透過呼叫此函數來進行10到100000之間素數的計算!

下面給出具體的程式碼(僅供參考):


package javastudy;
public class Testit1 {
  public static void main(String[] args) {
    for (int number = 100; number <= 100000; number++) { //求10到10000之间所有的素数,一个大的循环
      int temp = number; //这步代码是为了让Getlength(number)不变
      int sum = 0;
      for (int i = 0; i < Getlength(number); i++) {
        sum += Math.pow(temp % 10, Getlength(number)); //次方和相加
        temp = temp / 10;
      }
      if (sum == number) { //判断是否相等
        System.out.print(number+" ");
      }
    }
  }
  static int Getlength(int number) { //这个函数是为了求一个数字的位数
    int i = 0;
    while (number / 10 > 0) {
      i++;
      number /= 10;
    }
    return i + 1;
  }
}

執行結果:

#

以上是Java實作10-100000之間的水仙花數演算法的範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn