欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2022年02月11日 08:30:09   作者:痕跡g  
這篇文章介紹了C#實(shí)現(xiàn)阿姆斯特朗數(shù)的算法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

阿姆斯特朗數(shù)

阿姆斯特朗數(shù)是一個(gè)數(shù)字,等于每個(gè)數(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;
            /*
             * 這里我們只測(cè)試int類(lèi)型的最大值區(qū)間(<2,147,483,647)的結(jié)果,
             * 所以我們定義的長(zhǎng)度為0
             */
            int[] digitArray = new int[10];
            double sum = 0;

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

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

測(cè)試輸出結(jié)果:

獲取某個(gè)區(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;
        }

測(cè)試輸出結(jié)果:

 到此這篇關(guān)于C#算法之實(shí)現(xiàn)阿姆斯特朗數(shù)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論