C++ 程式檢查阿姆斯特朗數
阿姆斯特朗數是一個數,其各個數位之和的數字方冪等於該數本身。一些阿姆斯特朗數的示例如下。
3 = 3^1 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153 371 = 3^3 + 7^3 + 1^3 = 27 + 343 + 1 = 371 407 = 4^3 + 0^3 + 7^3 = 64 +0 + 343 = 407
一個檢查一個數是否為阿姆斯特朗數的程式如下。
示例
#include <iostream>
#include <cmath<
using namespace std;
int main() {
int num = 153, digitSum, temp, remainderNum, digitNum ;
temp = num;
digitNum = 0;
while (temp != 0) {
digitNum++;
temp = temp/10;
}
temp = num;
digitSum = 0;
while (temp != 0) {
remainderNum = temp%10;
digitSum = digitSum + pow(remainderNum, digitNum);
temp = temp/10;
}
if (num == digitSum)
cout<<num<<" is an Armstrong number";
else
cout<<num<<" is not an Armstrong number";
return 0;
}輸出
153 is an Armstrong number
在上述程式中,它確定給定的數字是否是阿姆斯特朗數。這是透過多步驟完成的。第一步是找到數字中的位數。這是透過為每個位數新增一個 digitNum 來完成的。
以下程式碼段對此進行了演示 −
temp = num;
digitNum = 0;
while (temp != 0) {
digitNum++;
temp = temp/10;
}在知道位數之後,透過將每個位數的數字方冪相加(即位數)來計算 digitSum。這可以在以下程式碼段中看到。
temp = num;
digitSum = 0;
while (temp != 0) {
remainderNum = temp%10;
digitSum = digitSum + pow(remainderNum, digitNum);
temp = temp/10;
}如果數字等於 digitSum,則該數字是阿姆斯特朗數並且會輸出。如果不是,則它不是阿姆斯特朗數。這可以在以下程式碼段中看到。
if (num == digitSum) cout<<num<<" is an Armstrong number"; else cout<<num<<" is not an Armstrong number";
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言
C++
C#
MongoDB
MySQL
Javascript
PHP