Heim >Backend-Entwicklung >Python-Tutorial >Python-Programm zum Berechnen der Summe von N Armstrong-Zahlen

Python-Programm zum Berechnen der Summe von N Armstrong-Zahlen

WBOY
WBOYnach vorne
2023-09-12 10:41:02612Durchsuche

Python-Programm zum Berechnen der Summe von N Armstrong-Zahlen

Wenn jede Ziffer einer Zahl mit der Gesamtzahl der Ziffern potenziert wird und dann die Unterteile addiert werden und das Ergebnis dieser Zahl entspricht, wird die Zahl Armstrongs Zahl genannt. In diesem Python-Beispiel wird anhand zweier verschiedener Beispiele eine Methode zum Ermitteln der Summe n-stelliger Armstrong-Zahlen angegeben. In Beispiel 1 wird eine Methode zur Berechnung der Summe aller dreistelligen Armstrong-Zahlen angegeben. In Beispiel 2 kann der Benutzer die Anzahl der Bits zur Laufzeit festlegen. Das Programm testet mit 4- bis 6-stelligen Zahlen.

Beispiel 1 – Ermitteln Sie die Summe aller dreistelligen Armstrong-Zahlen.

Die chinesische Übersetzung von

Algorithmus

lautet:

Algorithmus

Schritt 1 – Holen Sie sich eine Liste aller drei Ziffern. Nennen Sie diese Liste listofallNums.

Schritt 2 - Erstellen Sie eine Funktion, die die Summe aller Zahlen hoch zur 3. Potenz einer Zahl zurückgibt, wenn die berechnete Summe gleich der Zahl selbst ist, andernfalls -1.

Schritt 3 − Rufen Sie für alle Zahlen in listofArmStrNums die obige Funktion auf. Wenn der Wert nicht -1 ist, fügen Sie ihn der Liste mit dem Namen listofArmStrNums hinzu.

Schritt 4 – Stellen Sie sicher, dass alle Nummern in der ArmStrNums-Liste dreistellige armStrong-Nummern sind. Addieren Sie nun alle dreistelligen ArmStrong-Zahlen.

Schritt 5 – Führen Sie das Programm aus und überprüfen Sie die Ergebnisse.

Python-Datei enthält dies

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 )

Ergebnisse anzeigen – Beispiel 1

Um die Ergebnisse anzuzeigen, führen Sie die Python-Datei in einem Befehlszeilenfenster aus.

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

Abbildung 1: Anzeige der Ergebnisse im Befehlsfenster.

Beispiel 2: Ermitteln Sie die Summe aller n-stelligen Armstrong-Zahlen.

Die chinesische Übersetzung von

Algorithmus

lautet:

Algorithmus

Schritt 1 – Geben Sie den Wert N einer Zahl ein und erhalten Sie eine Liste aller N-stelligen Zahlen. Nennen Sie diese Liste listofallNums.

Schritt 2 – Erstellen Sie eine Funktion, die die Summe aller Zahlen hoch N zurückgibt, wenn die berechnete Summe gleich der Zahl selbst ist, andernfalls -1.

Schritt 3 − Rufen Sie für alle Zahlen in listofArmStrNums die obige Funktion auf. Wenn der Wert nicht -1 ist, fügen Sie ihn der Liste mit dem Namen listofArmStrNums hinzu.

Schritt 4 − Überprüfen Sie, ob alle Zahlen in listofArmStrNums N-stellige Armstrong-Zahlen sind. Addieren Sie nun alle diese N-stelligen Armstrong-Zahlen.

Schritt 5 – Führen Sie das Programm aus und prüfen Sie, ob das Ergebnis 4- und 5-stellige Zahlen enthält.

Python-Datei enthält dies

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 )

Ergebnisse anzeigen – Beispiel 2

Öffnen Sie ein cmd-Fenster und führen Sie die Python-Datei aus, um die Ergebnisse anzuzeigen.

listofallNums contains numbers from  10000  to  99999
This is an Armstrong number 54748
This is an Armstrong number 92727
This is an Armstrong number 93084
List of ArmStrong Numbers:  [54748, 92727, 93084]
list of sum subparts:  [32768, 1024, 16807, 1024, 3125]
adding together:
54748
list of sum subparts:  [16807, 32, 16807, 32, 59049]
adding together:
92727
list of sum subparts:  [1024, 32768, 0, 243, 59049]
adding together:
93084
Sum of all  5  digit ArmStrong numbers is  240559

Abbildung 2: Zeigt die Summe und die n-stelligen Armstrong-Zahlen.

In diesem Python-Artikel wird die Methode zum Ermitteln der Summe n-stelliger Armstrong-Zahlen anhand von zwei verschiedenen Beispielen beschrieben. In Beispiel 1 wird eine Methode zur Berechnung der Summe aller dreistelligen Armstrong-Zahlen angegeben. In Beispiel 2 kann der Benutzer die Anzahl der Ziffern zur Laufzeit festlegen. Wenn der Benutzer 4 eingibt, werden alle 4-stelligen Armstrong-Zahlen und deren Summe angezeigt.

Das obige ist der detaillierte Inhalt vonPython-Programm zum Berechnen der Summe von N Armstrong-Zahlen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen