註冊
登錄
論壇
搜索
幫助
導航
私人消息 (0)
公共消息 (0)
系統消息 (0)
好友消息 (0)
帖子消息 (0)
種子論壇 | 高雄市資訊培育協會學員討論區
»
113年Python證照特訓營(一)
» 310 函式與陣列 (阿姆斯壯數)
返回列表
發帖
發短消息
加為好友
鄭繼威
當前離線
crlf
UID
68866
帖子
2842
精華
0
積分
0
閱讀權限
100
來自
高雄市
在線時間
775 小時
註冊時間
2022-1-15
最後登錄
2024-8-31
版主
1
#
跳轉到
»
正序看帖
打印
字體大小:
t
T
鄭繼威
發表於 2024-1-30 15:57
|
只看該作者
310 函式與陣列 (阿姆斯壯數)
1. 題目說明:
請依下列題意進行作答,使輸出值符合題意要求。
2. 設計說明:
請撰寫一程式,包含名為compute()的函式,接收主程式傳遞的一個整數n(0 < n < 1000),compute()輸出所有小於n的阿姆斯壯數並回傳總和至主程式輸出。
阿姆斯壯數的定義:若為k位數的正整數,則其所有位數數字的k次方與該數相等。
補充說明:
阿姆斯壯數(Armstrong number),又稱自戀數(Narcissistic number)(因為各數字 n 次方後加總又等於本身,感覺很自戀?)。
例如 153 可以滿足 1³ + 5³ + 3³ = 153,153 就是個阿姆斯壯數,阿姆斯壯數有 88 個,最大為 39 位數的 115132219018763992565095597973971522401,已證實超過 39 位數不存在阿姆斯壯數。
提示:若使用 Java 語言答題,請以「JP」開頭命名包含 main 靜態方法的 class,評測系統才能正確評分。
3. 輸入輸出:
輸入說明
一個整數n(0 < n < 1000)
輸出說明
所有小於n的阿姆斯壯數與其總和
範例輸入
999
範例輸出
1
2
3
4
5
6
7
8
9
153
370
371
407
1346
本帖隱藏的內容需要回復才可以瀏覽
Python
def compute(n):
A_list = []
for i in range(1, n):
s = str(i)
k = len(s)
cnt = 0
for j in range(k):
cnt += int(s[j]) ** k
if cnt == i:
A_list.append(i)
return A_list
n = int(input())
A_list = compute(n)
sum = 0
for x in A_list:
print(x)
sum += x
print(sum)
複製代碼
收藏
分享
發短消息
加為好友
陳羨芮
當前離線
UID
68947
帖子
62
精華
0
積分
0
閱讀權限
10
在線時間
20 小時
註冊時間
2022-7-13
最後登錄
2024-9-20
新手上路
10
#
陳羨芮
發表於 2024-1-31 14:00
|
只看該作者
本帖最後由 陳羨芮 於 2024-1-31 14:07 編輯
import math
def compute(n):
total=0
for i in range(1,n):
s=0
str1=str(i)
for j in range(0,len(str1)):
s=s+math.pow(int(str1[j]),len(str1))
if int(s)==int(str1):
print(f"{str1}")
total=total+i
return total
n=int(input())
t=compute(n)
print(t)
複製代碼
TOP
發短消息
加為好友
張桔熙
當前離線
UID
69007
帖子
138
精華
0
積分
0
閱讀權限
10
在線時間
53 小時
註冊時間
2022-10-28
最後登錄
2024-7-30
新手上路
9
#
張桔熙
發表於 2024-1-31 13:52
|
只看該作者
import math
def compute(n):
total=0
for j in range(1,n):
str1=str(j)
s=0
for i in range(len(str1)):
s=s+math.pow(int(str1[i]),len(str1))
if(int(s)==int(str1)):
print(f"{str1}")
total+=j
return total
n=int(input())
t=compute(n)
print(t)
複製代碼
TOP
發短消息
加為好友
鄭傳諭
當前離線
UID
69258
帖子
68
精華
0
積分
0
閱讀權限
10
在線時間
18 小時
註冊時間
2024-1-24
最後登錄
2024-4-23
新手上路
8
#
鄭傳諭
發表於 2024-1-31 13:52
|
只看該作者
def compute(n):
total=0
for j in range(1,n):
s=0
str1=str(j)
for i in range(0,len(str1)):
s=s+math.pow(int(str1[i]),len(str1))
if(int(s)==int(str1)):
print(f"{str1}")
total=total+j
return total
import math
n=int(input())
t=compute(n)
print(t)
複製代碼
TOP
發短消息
加為好友
鄭傳諭
當前離線
UID
69258
帖子
68
精華
0
積分
0
閱讀權限
10
在線時間
18 小時
註冊時間
2024-1-24
最後登錄
2024-4-23
新手上路
7
#
鄭傳諭
發表於 2024-1-31 12:02
|
只看該作者
def compute(n):
total=0
for j in range(1,n):
s=0
str1=str(j)
for i in range(0,len(str1)):
s=s+math.pow(int(str1[i]),len(str1))
if(int(s)==int(str1)):
print(f"{str1}")
total=total+j
return total
import math
n=int(input())
t=compute(n)
print(t)
複製代碼
TOP
發短消息
加為好友
王亭婷
當前離線
UID
69193
帖子
277
精華
0
積分
0
閱讀權限
10
在線時間
86 小時
註冊時間
2023-8-24
最後登錄
2024-9-1
新手上路
6
#
王亭婷
發表於 2024-1-31 12:00
|
只看該作者
def compute(n):
total=0
for j in range(1,n):
s=0
str1=str(j)
for i in range(0,len(str1)):
s=s+math.pow(int(str1[i]),len(str1))
if(int(s)==int(str1)):
print(f"{str1}")
total=total+j
return total
import math
n=int(input())
t=compute(n)
print(t)
TOP
發短消息
加為好友
陳羨芮
當前離線
UID
68947
帖子
62
精華
0
積分
0
閱讀權限
10
在線時間
20 小時
註冊時間
2022-7-13
最後登錄
2024-9-20
新手上路
5
#
陳羨芮
發表於 2024-1-31 11:58
|
只看該作者
def compute(n):
total=0
for j in range(1,n):
s=0
str1=str(j)
for i in range(0,len(str1)):
s=s+math.pow(int(str1[i]),len(str1))
if int(s)==int(str1):
print(f"{str1}")
total=total+j
return total
import math
n=int(input())
t=compute(n)
print(t)
複製代碼
TOP
發短消息
加為好友
張桔熙
當前離線
UID
69007
帖子
138
精華
0
積分
0
閱讀權限
10
在線時間
53 小時
註冊時間
2022-10-28
最後登錄
2024-7-30
新手上路
4
#
張桔熙
發表於 2024-1-31 11:54
|
只看該作者
def compute(n):
total=0
for j in range(1,n):
s=0
str1=str(j)
for i in range(0,len(str1)):
s=s+math.pow(int(str1[i]),len(str1))
if(int(s)==int(str1)):
print(f"{str1}")
total=total+j
return total
import math
n=int(input())
t=compute(n)
print(t)
複製代碼
TOP
發短消息
加為好友
沈敬翔
當前離線
UID
68832
帖子
41
精華
0
積分
0
閱讀權限
10
在線時間
10 小時
註冊時間
2021-10-1
最後登錄
2024-2-17
新手上路
3
#
沈敬翔
發表於 2024-1-31 11:52
|
只看該作者
import math
def compute(n):
total=0
for j in range(1,n):
s=0
str1=str(j)
for i in range(0,len(str1)):
s=s+math.pow(int(str1[i]),len(str1))
if int(s)==int(str1):
print(f"{str1}")
total+=j
return total
n=int(input())
t=compute(n)
print(t)
複製代碼
回復
1#
鄭繼威
TOP
發短消息
加為好友
許浩浩
當前離線
UID
68713
帖子
408
精華
0
積分
0
閱讀權限
10
在線時間
136 小時
註冊時間
2021-1-19
最後登錄
2024-11-9
新手上路
2
#
許浩浩
發表於 2024-1-31 11:50
|
只看該作者
本帖最後由 許浩浩 於 2024-1-31 13:42 編輯
def compute(n):
total=0
for j in range(1,n):
s=0
str1=str(j)
for i in range(0,len(str1)):
s=s+math.pow(int(str1[i]),len(str1))
if(int(s)==int(str1)):
print(f"{str1}")
total=total+j
return total
import math
n=int(input())
t=compute(n)
print(t)
複製代碼
TOP
返回列表
谷哥人營隊
113Scratch夏令營
113年APCS冬令營
113年Scratch冬令營
113年Python證照特訓營(一)
113年谷哥人程式體驗營
113年國三專班
Python研習營(113_114)
113年Python證照特訓營(二)
113年程式夏令營(一)(二)
113年APCS夏令營(一)(二)
Python研習營
113年Python研習冬令營
112年國三專班
112APCS夏令營(一)(二)
112App快速開發夏令營
C語言 / C++ (特別輔導)
C++證照
C#
家教特輔
C語言特輔/證照(家教)
C++證照
C#
HTML5+CSS+JavaScript+PHP+MySQL
Java 家教 (王捷恩)
113新版塊名稱
快樂學 Scratch
Python 家教 (王捷恩 康恒睿)
Python 特別輔導 (家教)
快樂 C++ (家教)
我愛 Java (家教)
程式解題我最行 (家教)
程式常態班
C++ 新生挑戰區
考照心得分享
快樂 C++11307週五19:00
快樂C++11309週六13:30-15:30
快樂 C++11303 (週六15:40-17:40) 3F
程式解題我最行 (週六15:30-17:30) 3F
快樂 C++ (週六13:30-15:30) 3F
快樂 C++ (週六19:00-21:00) 3F
程式解題我最行 (週六10:00-12:00) 3F
快樂學 Scratch
程式解題我最行(週五19:00-21:00)
快樂 C++ (週六13:30-15:30) 3F
程式解題我最行(週三19:15-21:15)
快樂 C++11207週六10
快樂 C++11208週六19:00
程式解題我最行 (週五19:00-21:00) 3F
快樂 C++ (週六15:30-17:30) 3F
程式解題我最行 (週六19:00-21:00) 3F
程式解題我最行 (週四19:10-21:10)
產投職訓
結訓課程 (產投職訓)
Php & MySQL old
Illustrator old
Dreamweaver old
Android手機程式開發班
PHP & MySQL電子商務互動式網站實作班 (102下)
PHP & MySQL (102上)
PHP & MySQL電子商務互動式網站實作班
Photoshop數位影像設計初階
Flash創意廣告動畫初階
行銷短片視訊剪輯
數位商業攝影實務班
PHP & MySQL電子商務系統開發實務初階班
電子商務系統開發實務中階班
Server基礎架設&動態網頁設計初階班
Java視窗應用程式設計與遊戲開發班
Illustrator時尚插畫創作設計初階班
102上Php & MySQL 初階班
電子商務互動式網站實作中階
Dreamweaver多媒體網頁設計
Android手機程式開發班(2012年10月)
PHP & MySQL (2012年10月)
創意塗鴉
yahoo橫幅
google橫幅
市民學苑
第二屆樂活部落格
第一屆電腦設備簡易維護和故障排除班
專案訓練
電子商務創業班
TQC PHP認證
投資理財班
領隊導遊班
電腦基礎及網路應用身心障礙專班
應用軟體網頁化開發
[收藏此主題]
[關注此主題的新回復]
[通過 QQ、MSN 分享給朋友]