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
Freigeben: 2023-09-12 10:41:02
nach vorne
646 Leute haben es durchsucht

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 )
Nach dem Login kopieren

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
Nach dem Login kopieren

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 )
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage