Heim >Backend-Entwicklung >Python-Tutorial >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.
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.
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 )
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.
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.
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 )
Ö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!