C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で入力された数値がアームストロング数かどうかを判定するプログラム

アームストロング数(Armstrong Number)とは、3桁の数値の場合、各桁の数字を3乗した値の合計が、元の数値そのものと等しくなる数のことです。

例として挙げられるのが「153」です。153は以下のように表すことができます。

1³ + 3³ + 5³

C#でアームストロング数かどうかを判定するには、まず対象となる数値の各桁を取り出し、それぞれの3乗を足し合わせていきます。ここでは、判定したい数値を変数「val」に格納しています。

ループ処理では、10で割りながら余りを求めることで、一の位から順に各桁の数字を取り出します。

for (int i = val; i > 0; i = i / 10) {
    rem = i % 10;
    sum = sum + rem*rem*rem;
}

次に、計算して得られた合計値「sum」と、元の数値「val」を比較します。両者が一致していれば、各桁の3乗の合計が元の数値と同じであることを意味するため、その数はアームストロング数であると判定できます。

if (sum == val) {
    Console.Write("Armstrong Number");
} else {
    Console.Write("Not an Armstrong Number");
}

サンプルコード

それでは、入力された数値がアームストロング数かどうかを判定する完全なサンプルプログラムを見てみましょう。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Demo {
    class ApplicationNew {
        static void Main(string[] args) {
            int val = 153, sum = 0;
            int rem;
            // アームストロング数の判定
            for (int i = val; i > 0; i = i / 10) {
                rem = i % 10;
                sum = sum + rem*rem*rem;
            }
            if (sum == val) {
                Console.Write("Armstrong Number");
            } else {
                Console.Write("Not an Armstrong Number");
            }
            Console.ReadLine();
        }
    }
}

実行結果

このプログラムを実行すると、153がアームストロング数であるため、以下の出力が得られます。

Armstrong Number
  1. Pythonでナルシスト数(アームストロング数)を判定するプログラムの作成方法

    ナルシスト数とは? ナルシスト数(Narcissistic Number、別名:アームストロング数)とは、「各桁の数字を桁数乗して合計した値が、元の数そのものと一致する数」のことです。 例えば、9474 を考えてみましょう。この数は4桁なので、各桁の数字を4乗して足し合わせます。 9^4 + 4^4 + 7^4 + 4^4 = 6561 + 256 + 2401 + 256 = 9474 計算結果が元の数 9474 と一致しているため、9474 はナルシスト数であると言えます。 判定アルゴリズムの手順 この問題を解くためには、以下の手順に従います。 数値 n を文字列に変換し、各桁の数字を

  2. Pythonでアームストロング数を判定するプログラムの書き方

    この記事では、与えられた整数が「アームストロング数(Armstrong number)」であるかどうかを判定するための考え方と、Pythonによる具体的な実装方法を解説します。 問題の定義 整数 n が与えられたとき、その整数がアームストロング数であるかどうかを判定することを目標とします。 アームストロング数とは? n 桁の正の整数 abcd… が次の条件を満たすとき、この数は「n 次(オーダー n)のアームストロング数」と呼ばれます。 abcd... = a^n + b^n + c^n + d^n + … つまり、各桁の数字を「桁数乗」した値の総和が、元の数と一致するかを確認す