Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program Python untuk mendapatkan jumlah nombor N Armstrong

Program Python untuk mendapatkan jumlah nombor N Armstrong

WBOY
WBOYke hadapan
2023-09-12 10:41:02594semak imbas

Program Python untuk mendapatkan jumlah nombor N Armstrong

Jika setiap digit nombor dinaikkan kepada kuasa jumlah bilangan digit dan kemudian bahagian kecil ditambah dan hasilnya sama dengan nombor itu, nombor itu dipanggil nombor Armstrong. Dalam contoh Python ini, kaedah untuk mencari jumlah n-digit nombor Armstrong diberikan menggunakan dua contoh berbeza. Dalam Contoh 1, kaedah untuk mengira jumlah semua nombor Armstrong 3 digit diberikan. Dalam Contoh 2, pengguna boleh menentukan bilangan bit pada masa jalan. Program menguji menggunakan nombor 4 hingga 6 digit.

Contoh 1 - Cari hasil tambah semua nombor Armstrong 3 digit.

Terjemahan bahasa Cina bagi

Algoritma

ialah:

Algoritma

Langkah 1 - Dapatkan senarai ketiga-tiga digit. Panggil senarai ini listofallNums.

Langkah 2 - Buat fungsi yang mengembalikan jumlah semua nombor yang dinaikkan kepada kuasa ke-3 nombor jika jumlah yang dikira sama dengan nombor itu sendiri, jika tidak ia mengembalikan -1.

Langkah 3 − Untuk semua nombor dalam listofArmStrNums, panggil fungsi di atas dan jika nilainya bukan -1, tambahkannya pada senarai bernama listofArmStrNums.

Langkah 4 - Sahkan bahawa semua nombor dalam senarai ArmStrNums ialah nombor armStrong 3 digit. Sekarang tambahkan kesemua 3 digit nombor ArmStrong ini bersama-sama.

Langkah 5 - Jalankan program dan semak hasilnya.

Fail Python mengandungi ini

numOfDigits=3
listofallNums=[]
listofArmStrNums=[]
listofsumparts=[]

def isArmStr(num, powof):
   sum = 0
   TNum = num
   while TNum > 0:
      digitt = TNum % 10
      sum += digitt ** powof
      TNum = TNum//10
    
   if sum==num:
      print('This is an Armstrong number', num)
      return sum
   else:
      return -1  

lowerNum=10**(numOfDigits-1)
highNum=10**(numOfDigits)

for item in range(lowerNum, highNum):
   listofallNums.append(item)
lastelem=len(listofallNums)-1
print("listofallNums contains numbers from ",listofallNums[0], " to ", listofallNums[lastelem])

for itemn in listofallNums:
   if(isArmStr(itemn, numOfDigits) != -1):
      listofArmStrNums.append(itemn)

print("List of ArmStrong Numbers: ", listofArmStrNums)

for elem in listofArmStrNums:
   listofsumparts=[]
   summ=0
   while elem > 0:
      digittt = elem % 10
      listofsumparts.append(digittt ** numOfDigits)
      elem = elem//10
   print(listofsumparts)

   total=0
   print("adding together: ")
   for ele in range(0,len(listofsumparts)):
      total = total + listofsumparts[ele]
   print(total)  


SumofallArmStrongnumbers=0
for element in listofArmStrNums:
   SumofallArmStrongnumbers = SumofallArmStrongnumbers + element
    
print("Sum of all 3 digit ArmStrong numbers is ", SumofallArmStrongnumbers )

Lihat hasil - Contoh 1

Untuk melihat hasilnya, jalankan fail Python dalam tetingkap baris arahan.

rreeee

Rajah 1: Memaparkan keputusan dalam tetingkap arahan.

Contoh 2: Cari hasil tambah semua nombor n-digit Armstrong.

Terjemahan bahasa Cina bagi

Algoritma

ialah:

Algoritma

Langkah 1 - Masukkan nilai N nombor dan dapatkan senarai semua nombor N-digit. Panggil senarai ini listofallNums.

Langkah 2 - Buat fungsi yang mengembalikan jumlah semua nombor yang dinaikkan kepada kuasa N jika jumlah yang dikira adalah sama dengan nombor itu sendiri, jika tidak ia mengembalikan -1.

Langkah 3 − Untuk semua nombor dalam listofArmStrNums, panggil fungsi di atas dan jika nilainya bukan -1, tambahkannya pada senarai bernama listofArmStrNums.

Langkah 4 − Sahkan sama ada semua nombor dalam senaraiArmStrNums ialah nombor Armstrong N-digit. Sekarang tambah semua nombor Armstrong N-digit ini.

Langkah 5 - Jalankan program dan semak sama ada terdapat nombor 4 dan 5 digit dalam keputusan.

Fail Python mengandungi ini

listofallNums contains numbers from  100  to  999
This is an Armstrong number 153
This is an Armstrong number 370
This is an Armstrong number 371
This is an Armstrong number 407
List of ArmStrong Numbers:  [153, 370, 371, 407]
[27, 125, 1]
adding together:
153
[0, 343, 27]
adding together:
370
[1, 343, 27]
adding together:
371
[343, 0, 64]
adding together:
407
Sum of all 3 digit ArmStrong numbers is  1301

Lihat hasil - Contoh 2

Buka tetingkap cmd dan jalankan fail python untuk melihat hasilnya.

numOfDigits = 5
listofallNums=[]
listofArmStrNums=[]
listofsumparts=[]

def isArmStr(num, powof):
   sum = 0
   TNum = num
   while TNum > 0:
      digitt = TNum % 10
      sum += digitt ** powof
      TNum = TNum//10
    
   if sum==num:
      print('This is an Armstrong number', num)
      return sum
   else:
      return -1  

lowerNum=10**(numOfDigits-1)
highNum=10**(numOfDigits)

for item in range(lowerNum, highNum):
   listofallNums.append(item)
lastelem=len(listofallNums)-1
print("listofallNums contains numbers from ",listofallNums[0], " to ", listofallNums[lastelem])

for itemn in listofallNums:
   if(isArmStr(itemn, numOfDigits) != -1):
      listofArmStrNums.append(itemn)

print("List of ArmStrong Numbers: ", listofArmStrNums)

for elem in listofArmStrNums:
   listofsumparts=[]
   summ=0
   while elem > 0:
      digittt = elem % 10
      listofsumparts.append(digittt ** numOfDigits)
      elem = elem//10
   print("list of sum subparts: ", listofsumparts)

   total=0
   print("adding together: ")
   for ele in range(0,len(listofsumparts)):
      total = total + listofsumparts[ele]
   print(total)   

SumofallArmStrongnumbers=0
for element in listofArmStrNums:
   SumofallArmStrongnumbers = SumofallArmStrongnumbers + element
    
print("Sum of all ", numOfDigits, " digit ArmStrong numbers is ", SumofallArmStrongnumbers )

Rajah 2: Menunjukkan jumlah dan n-digit nombor Armstrong.

Dalam artikel Python ini, kaedah mencari jumlah n-digit nombor Armstrong diberikan menggunakan dua contoh berbeza. Dalam Contoh 1, kaedah diberikan untuk mengira jumlah semua nombor Armstrong 3 digit. Dalam Contoh 2, pengguna boleh menentukan bilangan digit pada masa jalan. Jika pengguna memasukkan 4, maka semua nombor Armstrong 4 digit dan jumlahnya diberikan.

Atas ialah kandungan terperinci Program Python untuk mendapatkan jumlah nombor N Armstrong. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam