Java 中的阿姆斯壯數是什麼? 這是先決條件和算法

已發表: 2021-04-08

目錄

什麼是阿姆斯壯數?

給定數 x 稱為 n 階 Armstrong 數,如果它等於其數字之和的 n 次冪,即:

abc= pow(a,n) + pow(b,n) + pow(c,n)

n 位數的正整數是阿姆斯壯數(3 階),如果它等於其位數的立方和。 例如:

輸入:153

輸出:是的

1*1*1 + 5*5*5 + 3*3*3 = 153

因此,153 是阿姆斯壯數

輸入:121

輸出:否

1*1*1 + 2*2*2 + 1*1*1 = 10

因此,120 不是阿姆斯壯數。

先決條件和算法

在本文中,我們將學習檢查輸入數字是否為 Armstrong 數字。 為此,我們將在 Java 中使用 while 循環和 for 循環。 要理解這個程序,我們需要了解 Java 中的以下主題:

  • Java if-else 語句
  • Java for 循環
  • Java while 和 do-while 循環

算法:

  1. 取一個整數變量 x
  2. 將值分配給變量 x
  3. 值的數字被拆分
  4. 找到每個數字的立方值
  5. 添加所有立方體的值
  6. 輸出保存到 sum 變量
  7. 如果 sum=X,則打印 Armstrong 數

如果 sum != X,則打印非 Armstrong 數

用Java檢查阿姆斯壯數的程序

1. 3 階 Java 中的 Armstrong 數

代碼:

公共課阿姆斯特朗{

公共靜態無效主要(字符串[]參數){

詮釋 x=0,一,溫度;

int n=153;//是檢查阿姆斯壯的數字

溫度=n;

而(n>0)

{

a=n%10;

n=n/10;

x=x+(a*a*a);

}

如果(溫度==x)

System.out.println(“阿姆斯壯數”);

別的

System.out.println(“非阿姆斯壯數”);

}

}

輸出:

解釋

首先,給定數字 N 的值存儲在另一個整數變量 x 中。 這樣做是因為我們需要在最後比較原始數字和最終數字的值。 while 循環用於遍歷數字 N,直到它等於 0。每次迭代時,N 的最後一位都存儲在 a 中。

然後通過立方 a 或使用 Math 計算結果。 pow() 並將其添加到 x. 當從 N 中去掉最後一位時,除以 10。最後將 =、temp 和 X 進行比較。 如果它們相等,則為阿姆斯壯數。 否則,它不是。

2. n 階 Java 中的 Armstrong 數

代碼:

公共課阿姆斯特朗

{

/* 計算a的函數

功率 b */

int power(int a, long b)

{

如果( b == 0)

返回 1;

如果 (b%2 == 0)

返回功率(a,b/2)*功率(a,b/2);

返回 a*power(a, b/2)*power(a, b/2);

}

/* 計算數字順序的函數 */

int order(int a)

{

詮釋 n = 0;

而(一個!= 0)

{

n++;

a = a/10;

}

返回 n;

}

// 檢查給定數是否為阿姆斯壯數的函數

布爾阿姆斯特朗 (int a)

{

// 調用排序函數

int n = order(a);

國際溫度=一,總和= 0;

而(溫度!= 0)

{

int r = temp%10;

總和 = 總和 + 冪(r,n);

溫度=溫度/10;

}

// 如果滿足阿姆斯壯條件

返回(總和 == a);

}

// 驅動程序

公共靜態無效主要(字符串 [] 參數)

{

阿姆斯特朗 obj = 新阿姆斯壯();

整數 a = 153;

System.out.println(obj.isArmstrong(a));

a = 1276;

System.out.println(obj.isArmstrong(a));

}

}

輸出

解釋

在這個程序中,我們使用了遞歸而不是 while 循環。 第一個函數用於計算 a 的 b 次冪。 Math.pow(a,b) 也可以用於相同的目的。 第二個函數檢查數字的順序,例如,153 的順序為 3。最後,布爾函數 Armstrong 用於返回數字是否為 Armstrong。 然後使用 Armstrong 類的對象來調用這些函數。

打印給定範圍內的 Armstrong 數字的 Java 程序

代碼:

公共課阿姆斯特朗

{

公共靜態無效主(字符串[] arg)

{

詮釋 i=0,x;

System.out.println(“0 到 999 之間的阿姆斯壯數字”);

而(我<1000)

{

x=armstrongOrNot(i);

如果(x==i)

System.out.println(i);

我++;

}

}

靜態 int armstrongOrNot(int n)

{

詮釋 c,a=0;

而(n!= 0)

{

c=n%10;

a=a+(c*c*c);

n/=10 ;

}

返回一個;

}

}

輸出:

說明:在這個程序中,檢查給定區間低和高之間的每個數字。 每次檢查後,總和和位數恢復為 0。

結論

在本文中,我們詳細介紹了 java 中的一個 Armstrong 數。 我們看到瞭如何檢查一個數字是否是 n 階和 3 階的 Armstrong 數。我們還看到瞭如何獲得下限和上限之間的所有 Armstrong 數。

如果您想提高您的 Java 技能,您需要掌握這些 Java 項目。 如果您有興趣了解有關 Java、全棧開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發執行 PG 計劃,該計劃專為在職專業人士設計,提供 500 多個小時的嚴格培訓,9 個以上的項目和任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。

如果您希望了解有關 Java 的更多信息並在您的技術職業生涯中提升,那麼請探索印度最大的在線高等教育公司 upGrad提供的免費 Java 在線課程與我們聯繫了解更多詳情。

成為全棧開發人員

升級和 IIIT-BANGALORE 的軟件開發 PG 文憑
現在註冊@升級