課程
/后端開發
/Python
/初識Python
這段代碼的運行結果為2097150,提交的時候一直提示"請檢查輸出是否匹配:1048575.."請問哪里錯了呢?我檢查了好久,始終找不到原因,求高手解答.
2016-05-04
源自:初識Python 5-6
正在回答
sum?=?0 x?=?1 n?=?1 while?True: ???if?n?>?20: ???????break ???sum?=?sum?+?x ???x?=?x?*?2 ???n?=?n?+?1 print?sum
差別就是 sum = sum + x 放的位置, 最后一次 的x 的值 是1048576,這是n 是21, 正確的代碼 這次的x 的值沒有加給sum (在 if 語句處,break 出循環)。 而題主的代碼, x 是1048576 的時候 直接加給了 sum 而后才在if 出跳出循環, 另外 題主的sum 第一次執行的是 sum = sum (0) + x (2), ?沒有從1 開始。
其實要想 知道循環的過程 只要在 sum = sum + x 前面插上一句 print x 就好了。
慕容2639740 提問者
sum?=?0 x?=?1 n?=?1 while?True: ????if?n?>?20: ????????break ???sum=sum+x ????x=x*2 ????n?=n+1 print?sum
試試這個,應該可以了
題目要求是1+2+4+8+16+。。。 在你的程序中怎么取到1這個數字?
判斷語句應當放到n=n+1后面,否則你實際計算到了n=21
舉報
學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-05-04
差別就是 sum = sum + x 放的位置, 最后一次 的x 的值 是1048576,這是n 是21, 正確的代碼 這次的x 的值沒有加給sum (在 if 語句處,break 出循環)。 而題主的代碼, x 是1048576 的時候 直接加給了 sum 而后才在if 出跳出循環, 另外 題主的sum 第一次執行的是 sum = sum (0) + x (2), ?沒有從1 開始。
其實要想 知道循環的過程 只要在 sum = sum + x 前面插上一句 print x 就好了。
2016-05-04
2016-05-04
題目要求是1+2+4+8+16+。。。 在你的程序中怎么取到1這個數字?
2016-05-04
判斷語句應當放到n=n+1后面,否則你實際計算到了n=21