I dette eksempel lærer du at kontrollere, om et n-cifret heltal er et Armstrong-tal eller ej.
For at forstå dette eksempel skal du have kendskab til følgende Python-programmeringsemner:
- Python hvis … ellers Erklæring
- Python mens Loop
Et positivt heltal kaldes et Armstrong antal af rækkefølge n hvis
abcd… = a n + b n + c n + d n +…
I tilfælde af et Armstrong-antal på 3 cifre er summen af terninger af hvert ciffer lig med selve tallet. For eksempel:
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 er et Armstrong-tal.
Kildekode: Kontroller Armstrong-nummeret (for 3 cifre)
# Python program to check if the number is an Armstrong number or not # take input from the user num = int(input("Enter a number: ")) # initialize sum sum = 0 # find the sum of the cube of each digit temp = num while temp> 0: digit = temp % 10 sum += digit ** 3 temp //= 10 # display the result if num == sum: print(num,"is an Armstrong number") else: print(num,"is not an Armstrong number")
Udgang 1
Indtast et nummer: 663 663 er ikke et Armstrong-nummer
Udgang 2
Indtast et tal: 407 407 er et Armstrong-nummer
Her beder vi brugeren om et nummer og kontrollerer, om det er et Armstrong-nummer.
Vi er nødt til at beregne summen af terningen for hvert ciffer. Så vi initialiserer summen til 0 og opnår hvert cifret nummer ved hjælp af moduloperatoren%. Resten af et tal, når det divideres med 10, er det sidste ciffer i dette nummer. Vi tager terningerne ved hjælp af eksponentoperator.
Endelig sammenligner vi summen med det oprindelige tal og konkluderer, at det er Armstrong-nummer, hvis de er ens.
Kildekode: Kontroller Armstrong antal n cifre
num = 1634 # Changed num variable to string, # and calculated the length (number of digits) order = len(str(num)) # initialize sum sum = 0 # find the sum of the cube of each digit temp = num while temp> 0: digit = temp % 10 sum += digit ** order temp //= 10 # display the result if num == sum: print(num,"is an Armstrong number") else: print(num,"is not an Armstrong number")
Du kan ændre værdien af num i kildekoden og køre igen for at teste den.