C#算法之實現(xiàn)阿姆斯特朗數(shù)
更新時間:2022年02月11日 08:30:09 作者:痕跡g
這篇文章介紹了C#實現(xiàn)阿姆斯特朗數(shù)的算法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
阿姆斯特朗數(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("請輸入驗證的數(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é)果:
到此這篇關(guān)于C#算法之實現(xiàn)阿姆斯特朗數(shù)的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C# websocket及時通信協(xié)議的實現(xiàn)方法示例
說到websocket大家一定不會陌生,WebSocket是HTML5一種新的協(xié)議。下面這篇文章主要給大家介紹了關(guān)于C# websocket及時通信協(xié)議的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
2017-11-11 

