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 循環
算法:
- 取一個整數變量 x
- 將值分配給變量 x
- 值的數字被拆分
- 找到每個數字的立方值
- 添加所有立方體的值
- 輸出保存到 sum 變量
- 如果 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 在線課程。 與我們聯繫了解更多詳情。