Python基礎練習之一輸出10000以內的阿姆斯特朗數
題目解析
要解這道題,首先我們要清楚阿姆斯特朗數是什麼意思;阿姆斯特朗數是說如果一個n位正整數等於其各位數字的n次方之和,則稱該數為阿姆斯特朗數。比如1^3^ + 5^3^ + 3^3^ = 153,1^4^+6^4^+3^4^+4^4^=1634
解題思路
1.利用for迴圈遍歷1-10000
2.根據常識,1-9都是阿姆斯特朗數,直接輸出即可
3.判斷位數,進行數字拆分,使用除法和取餘運算,得到各個位數上的數字
4.進行運算和判斷
程式碼展示
#!/usr/bin/python3
#-*- coding:UTF-8 -*-
print("10000以內的阿姆斯特朗數有:")
for number in range(1, 10001):
if number < 10: #1-9都為阿姆斯特朗數,直接輸出即可
print(number)
elif number < 100:
n1 = number % 10 #取個位數
n2 = int(number/10 % 10) #取十位數
result = n1**2 + n2**2
if number == result:
print(number)
elif number < 1000:
n1 = number % 10
n2 = int(number/10 % 10)
n3 = int(number/100 % 10) #取千位數
result = n1**3 + n2**3 + n3**3
if number == result:
print(number)
elif number < 10000:
n1 = number % 10
n2 = int(number/10 % 10)
n3 = int(number/100 % 10)
n4 = int(number/1000 % 10) #取萬位數
result = n1**4 + n2**4 + n3**4 + n4**4 #各位數進行次方運算
if number == result:
print(number)
執行結果如下:
1
2
3
4
5
6
7
8
9
153
370
371
407
1634
8208
9474
最後總結
練習總結
1.練習for迴圈的運用
2.if的用法
3.取數字各位數上的數字
改進思考
1.在分解數字的時候,可以使用//進行整除,這樣就不用再使用int函式轉換了
2.在判斷數字位數的時候,是否還有另外的辦法,比如直接對5位數進行分解,然後從高位開始判斷,知道某一位不等於0,即可判斷數字位數,比如00124的時候,即為3位數。
相關文章
- Python基礎練習題Python
- python基礎篇-輸入和輸出Python
- c 語言輸出1000以內的逆序數
- python基礎語句小練習Python
- 9道python基礎練習題Python
- python基礎 while迴圈練習PythonWhile
- python 基礎之scrapy 原理練習Python
- 使用python判斷某個數是不是素數及輸出100以內的所有素數Python
- 基礎練習——python特殊的數字——2020.11.17Python
- python基礎(四)----列表、字典練習題Python
- 第11周專案6(4)-10000以內的所有可逆素數
- MySQL基礎練習MySql
- JavaScript基礎練習JavaScript
- expdp基礎練習
- Java基礎輸入輸出Java
- Python 小練習 求list內中間數Python
- Python基礎學習內容概述Python
- Python3 (基礎練習)猴子吃桃Python
- 藍橋杯:基礎練習 查詢整數
- 藍橋杯 【基礎練習】 特殊迴文數
- JAVA 基礎練習題Java
- 基礎練習 Sine之舞
- IOS基礎-Masonry 練習iOS
- Java基礎 --- 綜合練習Java
- Python程式設計基礎題(7-輸入星期數字,輸出對應英文)Python程式設計
- 【21】Python100例基礎練習(5)Python
- python基礎學習_01變數Python變數
- [基礎訓練]數列排序排序
- python ----輸入輸出 變數Python變數
- 輸入和輸出基礎語法
- linux基礎練習題Linux
- 藍橋杯試題 基礎練習 特殊迴文數
- Linux基礎命令---echo列印內容到標準輸出Linux
- 藍橋杯基礎練習-找出唯一成對的數
- 【程式設計基礎】輸出程式設計
- shell基礎-輸出重定向
- python基礎內容Python
- python 以16進位制列印輸出Python