日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C#算法之實現阿姆斯特朗數_C#教程

作者:痕跡g ? 更新時間: 2022-04-16 編程語言

阿姆斯特朗數

阿姆斯特朗數是一個數字,等于每個數字的冪乘以總位數。 例如,諸如0、1、153、370、371和407、1634、8208、9474的數字是阿姆斯特朗數。

例如:

  • 371 為3位數, 則用每位數的3次方

    (3 * 3 * 3)=27

    (7 * 7 * 7)=343

    (1 * 1 * 1) =1

    總數: 27+343+1=371

判斷數字是否屬于阿姆斯特朗數?

static void Main(string[] args)
        {
            int i = 0;
            int digitCount = 0;
            /*
             * 這里我們只測試int類型的最大值區間(<2,147,483,647)的結果,
             * 所以我們定義的長度為0
             */
            int[] digitArray = new int[10];
            double sum = 0;

            Console.Write("請輸入驗證的數字 : ");
            //1.輸入數字
            int number = int.Parse(Console.ReadLine());
            //2.用臨時變量保存該數字
            int temporaryNumber = number;
            //3.保存數字的總數以及每個數字存儲在數字數組中
            while (number > 0)
            {
                digitArray[i++] = number % 10;
                number = number / 10;
                digitCount++;
            }
            //4.計算結果
            for (i = 0; i < digitCount; i++)
                //計算數字的次數冪
                sum += Math.Pow(digitArray[i], digitCount);

            //5.判斷結果
            if (sum == temporaryNumber)
                Console.WriteLine($"{temporaryNumber} 屬于阿姆斯特朗數");
            else
                Console.WriteLine($"{temporaryNumber} 不屬于阿姆斯特朗數");
            Console.ReadLine();
        }

測試輸出結果:

獲取某個區間的所有阿姆斯特朗數

		static void Main(string[] args)
        {
            Console.Write("輸入起始數字 : ");
            int StartNumber = int.Parse(Console.ReadLine());
            Console.Write("輸入結束數字 : ");
            int EndNumber = int.Parse(Console.ReadLine());
            Console.WriteLine($"阿姆斯特朗數區間為: {StartNumber} ~ {EndNumber} 的結果為 : ");
            for (int i = StartNumber; i <= EndNumber; i++)
            {
                if (IsArmstrongNumber(i))
                    Console.WriteLine(i);
            }
            Console.ReadLine();
        }

        static bool IsArmstrongNumber(int number)
        {
            int sum = 0;
            int temporaryNumber = number;
            int temp = 0;
            int length = number.ToString().Length;
            while (number != 0)
            {
                temp = number % 10;
                number = number / 10;
                sum += (int)Math.Pow(temp, length);
            }

            if (sum == temporaryNumber)
                return true;
            else
                return false;
        }

測試輸出結果:

原文鏈接:https://www.cnblogs.com/zh7791/p/14714786.html

欄目分類
最近更新