Nombor Armstrong dalam C#

WBOY
Lepaskan: 2024-09-03 15:35:11
asal
375 orang telah melayarinya

Nombor Armstrong ialah nombor yang sama dengan jumlah digitnya dalam kubus. Ia terdiri daripada N digit dan bersamaan dengan jumlah setiap digit yang dinaikkan kepada kuasa N. Sebagai contoh, nombor termasuk 0, 1, 153, 370, 371 dan 407, 1634, 8208, 9474 dianggap nombor Armstrong. Dalam topik ini, kita akan mempelajari tentang Nombor Armstrong dalam C#.

Proses penyulitan dan penyahsulitan menggunakan nombor Armstrong yang akan ditunjuk sebagai kunci rahsia. Untuk membuat pengesahan bersama-sama dengan perlindungan antara dua pengguna yang dimaksudkan, pelayan digunakan. Pengirim dan penerima akan disahkan dengan bantuan pelayan.

Logik

Untuk melihat logik di sebalik nombor Armstrong, kami akan menggunakan salah satu nombor untuk menerangkan secara ringkas tentang kaedah nombor Armstrong. Pertimbangkan nombor sebagai 407 untuk menerangkan logiknya.

407 = (4*4*4) + (0*0*0) + (7*7*7)

Di sini, darab setiap nombor tiga kali seperti yang ditunjukkan di bawah:

(4*4*4) = 64

(0*0*0) = 0

(7*7*7) = 343

Oleh itu, tambah nombor yang didarab di atas, anda akan mendapat keputusan seperti yang tertulis di bawah:

64+0+343 = 407

Contoh Nombor Armstrong dalam C#

Berikut ialah contoh berikut yang disebut di bawah.

Contoh #1

Kod:

using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
int i = 0;
int num = 0;
int[] numArray = new int[10];
double res = 0;
//Step 1 : Provide the number in this step
Console.Write("Please enter the number : ");
int number = int.Parse(Console.ReadLine());
//Step 2 : Now store the number in a temporary variable
int tmpryNum = number;
//Step 3 : Calculate the total number of integers in number and store each integer in the digit array
while (number > 0)
{
numArray[i++] = number % 10;
number = number / 10;
num++;
}
//Step 4 : Calculate the number
for (i = 0; i < num; i++)
{
res += Math.Pow(numArray[i], num);
}
//Step 5 : Check whether number is prime or not
if (res == tmpryNum)
{
Console.WriteLine($"The number {tmpryNum} is armstrong");
}
else
{
Console.WriteLine($"The number {tmpryNum} is not armstrong");
}
Console.ReadLine();
}
}
Salin selepas log masuk

Output:

Nombor Armstrong dalam C#

Contoh #2

Kod:

using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
int mynum, remainder, res = 0;
Console.Write("Please enter an integer number: ");
mynum = int.Parse(Console.ReadLine());
for (int m = mynum; m > 0; m = m / 10)
{
remainder = m % 10;
res = res + remainder*remainder*remainder;
}
if (res == mynum)
{
Console.Write("The number entered by you is an Armstrong number...");
}
else
Console.Write("The number entered by you is not an Armstrong number...");
Console.ReadLine();
}
}
Salin selepas log masuk

Output:

Nombor Armstrong dalam C#

Contoh #3

Kod:

using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
int mynum,m, res=0,r;
Console.Write("Please enter the number :");
mynum = Convert.ToInt32(Console.ReadLine());
m = mynum;
while(m!=0)
{
r=m%10;
res =res+(r*r*r);
m = m / 10;
}
if(res==mynum)
Console.WriteLine("The number which you have entered is an Armstrong Number...");
else
Console.WriteLine("The number which you have entered is not an Armstrong Number...");
Console.ReadKey();
}
}
Salin selepas log masuk

Output

Nombor Armstrong dalam C#

Contoh #4

Kod:

using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
int mynum,val,res,temp_var;
int start_no,end_no;
Console.Write("\n\n");
Console.Write("Searching for the Armstrong number in a given range of range of numbers:\n");
Console.Write("--------------------------------------------------------");
Console.Write("\n\n");
Console.Write("Enter the starting number... ");
start_no= Convert.ToInt32(Console.ReadLine());
Console.Write("Enter the ending number... ");
end_no= Convert.ToInt32(Console.ReadLine());
Console.Write("The list of Armstrong numbers in given above range are: ");
for(mynum=start_no;mynum<=end_no;mynum++){
temp_var=mynum;
res = 0;
while(temp_var!=0){
val=temp_var % 10;
temp_var=temp_var/10;
res=res+(val*val*val);
}
if(res==mynum)
Console.Write("{0} ",mynum);
}
Console.Write("\n");
}
}
Salin selepas log masuk

Output:

Nombor Armstrong dalam C#

Contoh #5

Kod:

using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
Console.Write("Enter the Start Number : ");
int StartNumber = int.Parse(Console.ReadLine());
Console.Write("Enter the End Number : ");
int EndNumber = int.Parse(Console.ReadLine());
Console.WriteLine($"The Armstrong Numbers between {StartNumber} and {EndNumber} are : ");
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;
}
}
}
Salin selepas log masuk

Output:

Nombor Armstrong dalam C#

Contoh #6

Kod:

using System;
public class Program
{
// This function is used to find Nth Armstrong Number
static int ArmstrongNum(int n)
{
int cnt = 0;
// specifying the upper limit from integer
for(int m = 1; m <= int.MaxValue; m++)
{
int num = m, rem, digit = 0, res = 0;
num = m;
// Calculate the total digits in num
digit = (int) Math.Log10(num) + 1;
// Calculate sum of power of digits
while(num > 0)
{
rem = num % 10;
res = res + (int)Math.Pow(rem, digit);
num = num / 10;
}
// Check the Armstrong number
if(m == res)
cnt++;
if(cnt == n)
return m;
}
return n;
}
public static void Main()
{
int n = 15;
Console.WriteLine(ArmstrongNum(n));
}
}
Salin selepas log masuk

Output:

Nombor Armstrong dalam C#

Contoh #7

Kod:

using System;
public class Program
{
int power(int a, long b)
{
if( b == 0)
return 1;
if (b % 2 == 0)
return power(a, b / 2) * power(a, b / 2);
return a * power(a, b / 2) * power(a, b / 2);
}
int myfunc(int a)
{
int n = 0;
while (a != 0)
{
n++;
a = a / 10;
}
return n;
}
bool ArmstrongNum (int a)
{
int n = myfunc(a);
int tmp_var = a, res = 0;
while (tmp_var != 0)
{
int rs = tmp_var % 10;
res = res + power(rs, n);
tmp_var = tmp_var / 10;
}
return (res == a);
}
public static void Main()
{
Program pgm = new Program();
int a = 8208;
Console.WriteLine(pgm.ArmstrongNum(a));
a = 1423;
Console.WriteLine(pgm.ArmstrongNum(a));
}
}
Salin selepas log masuk

Output:

Nombor Armstrong dalam C#

Kesimpulan

Setakat ini, kami telah mengkaji bagaimana nombor Armstrong boleh digunakan dalam C#. Dalam teori nombor, ia dikenali sebagai nombor narsisistik. Dengan artikel ini, saya berharap kandungan yang dijelaskan di atas menambah nilai kepada pengetahuan C# anda. Cuba dengan pelbagai jenis nombor seperti yang ditunjukkan dalam pelbagai kaedah di atas untuk bermain dengan teknik nombor Armstrong.

Atas ialah kandungan terperinci Nombor Armstrong dalam C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!