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

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

C#算法之實(shí)現(xiàn)阿姆斯特朗數(shù)_C#教程

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

阿姆斯特朗數(shù)

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

例如:

  • 371 為3位數(shù), 則用每位數(shù)的3次方

    (3 * 3 * 3)=27

    (7 * 7 * 7)=343

    (1 * 1 * 1) =1

    總數(shù): 27+343+1=371

判斷數(shù)字是否屬于阿姆斯特朗數(shù)?

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

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

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

測試輸出結(jié)果:

獲取某個區(qū)間的所有阿姆斯特朗數(shù)

		static void Main(string[] args)
        {
            Console.Write("輸入起始數(shù)字 : ");
            int StartNumber = int.Parse(Console.ReadLine());
            Console.Write("輸入結(jié)束數(shù)字 : ");
            int EndNumber = int.Parse(Console.ReadLine());
            Console.WriteLine($"阿姆斯特朗數(shù)區(qū)間為: {StartNumber} ~ {EndNumber} 的結(jié)果為 : ");
            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;
        }

測試輸出結(jié)果:

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

欄目分類
最近更新