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";

更新時間: 2020-06-24

957 瀏覽量

開啟你的 職業生涯

完成課程後獲得認證

開始
廣告
© . All rights reserved.