C++ でアームストロング数をチェックする

C++C++Beginner
オンラインで実践に進む

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、C++ で数値がアームストロング数かどうかをチェックする方法を学びます。アームストロング数とは、各桁の数を桁数のパワーに上げたものの和に等しい数です。これは、C++ のコーディングスキルを練習するのに役立つ簡単なプログラムです。

必要なライブラリをインクルードする

以下のコマンドを使用して、~/project ディレクトリに新しいファイル main.cpp を作成します。

touch ~/project/main.cpp

このステップでは、必要なライブラリをインクルードします。

#include <iostream>
#include <cmath>
using namespace std;

iostream ライブラリは入出力ストリームを扱うために使用され、一方、cmath ライブラリは数学演算の機能を追加します。

main() 関数を定義する

このステップでは、main() 関数を定義します。

int main() {
    // ここにコードを記述する
    return 0;
}

main 関数はプログラムのエントリーポイントです。実行するすべてのコードはこの関数の中に記述する必要があります。

変数を宣言して初期化する

このステップでは、プログラムに必要な変数を宣言して初期化します。

int num, originalNumber, remainder, result = 0, n = 0;
  • num は入力された数値です
  • originalNumber は修正されていない入力数値です
  • remainder は入力数値の最後の桁を格納します
  • result はアームストロング計算の結果を格納します
  • n は入力数値の桁数を決定するために使用されます

ユーザー入力を受け取る

このステップでは、ユーザーから入力値を受け取ります。

cout << "Enter a positive integer: ";
cin >> num;

このコード スニペットは、ユーザーから入力を受け取り、それを変数 num に格納します。

入力数値の桁数を求める

このステップでは、入力数値の桁数を求めます。

originalNumber = num;

// 桁数を数える
while (originalNumber!= 0) {
    originalNumber /= 10;
    ++n;
}

このコード ブロックは、入力数値の桁数を数えます。その数は変数 n に格納されます。

結果を計算する

このステップでは、アームストロング数の計算結果を求めます。

originalNumber = num;

while (originalNumber!= 0) {
    remainder = originalNumber % 10;
    result += pow(remainder, n);
    originalNumber /= 10;
}

このコード ブロックは、入力数値の各桁を順に処理して、アームストロング数の計算を行います。結果は変数 result に格納されます。

結果をチェックする

このステップでは、入力数値がアームストロング数かどうかをチェックします。

if (result == num)
    cout << num << " is an Armstrong number";
else
    cout << num << " is not an Armstrong number";

このコード ブロックは、プログラムの結果を出力します。結果が入力数値と等しい場合、入力数値はアームストロング数です。そうでなければ、アームストロング数ではありません。

端末でコードを実行するには:

g++ main.cpp -o main && ./main

まとめ

この実験では、数値がアームストロング数かどうかをチェックする方法を学びました。このタスクに必要な計算を行うために cmath ライブラリを使用しました。また、数値の桁を反復処理してその桁数を数える方法も学びました。この基本的なプログラムを使って、あなたはさらに C++ のコーディング技術を発展させることができます。