110年身心障礙人員四等程式設計概要
四、如下的 Python method,分別使用 PQ1(-171)、PQ1(271)、PQ1(-371)、PQ1(471) 進行呼叫,請問執行的結果為何?(25分) def PQ1(num): resultNum = 0; original = num; num = abs(num); while(num > 0): rr = num%10; num = num//10; resultNum = resultNum+(rr*rr*rr); if(abs(original) == resultNum): print("{} Hit {} !!".format(original, original)); else: print("{} Not Hit {} !!".format(original, resultNum)); |
答:
def PQ1(num): resultNum = 0; original = num; num = abs(num); while(num > 0): rr = num%10; num = num//10; resultNum = resultNum+(rr*rr*rr); if(abs(original) == resultNum): print("{} Hit {} !!".format(original, original)); else: print("{} Not Hit {} !!".format(original, resultNum)); PQ1(-171) PQ1(271) PQ1(-371) PQ1(471) |
執行結果:
-171 Not Hit 345 !!
271 Not Hit 352 !!
-371 Hit -371 !!
471 Not Hit 408 !!
說明:
PQ1(-171):
|
num |
rr |
resultNum |
初始值 |
-171 |
- |
0 |
第一回 |
17 |
1 |
0+1×1×1 = 0+1 = 1 |
第二回 |
1 |
7 |
1+7×7×7 = 1+343 = 344 |
第三回 |
0 |
1 |
344+1×1×1 = 344+1 = 345 |
PQ1(271):
|
num |
rr |
resultNum |
初始值 |
271 |
- |
0 |
第一回 |
27 |
1 |
0+1×1×1 = 0+1 = 1 |
第二回 |
2 |
7 |
1+7×7×7 = 1+343 = 344 |
第三回 |
0 |
2 |
344+2×2×2 = 344+8 = 352 |
PQ1(-371):
|
num |
rr |
resultNum |
初始值 |
-371 |
- |
0 |
第一回 |
37 |
1 |
0+1×1×1 = 0+1 = 1 |
第二回 |
3 |
7 |
1+7×7×7 = 1+343 = 344 |
第三回 |
0 |
3 |
344+3×3×3 = 344+27 = 371 |
PQ1(471):
|
num |
rr |
resultNum |
初始值 |
471 |
- |
0 |
第一回 |
47 |
1 |
0+1×1×1 = 0+1 = 1 |
第二回 |
4 |
7 |
1+7×7×7 = 1+343 = 344 |
第三回 |
0 |
4 |
344+4×4×4 = 344+64 = 408 |