亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求1000以內的完數

求1000以內的完數

Codeplayer 2016-04-19 12:52:40
public class HelloWorld {? ? ?public static void main(String args[]) { int sum=0,i,j; for(i=1;i<=1000;i++){? ? ? ? for(j=1;j<i;j++){ ? ? ? if(i%j==0){ ? ? ? sum=sum+j; ? ? ? } ? ? ? } ? ? ? if(sum==i){ ? ? ? System.out.println(i); ? ? ?? ? ? ? } ? ? ?? } }}為什么將內for循環改為“for(j=1,sum=0;j<i;j++)”才正確,num=0不是開始就已經定義了嗎?
查看完整描述

1 回答

?
Its_forever

TA貢獻361條經驗 獲得超328個贊

進入第二個for循環的時候需要每次把sum置為0。

否則sum就一直累加走了,就不會找到正確的結果。

查看完整回答
反對 回復 2016-04-19
  • Codeplayer
    Codeplayer
    for循環中for(循環變初始化;循環條件;循環變量變化)。循環變量初始化不是只會執行一次嗎?
  • Its_forever
    Its_forever
    對啊,所以我說的是第二個for循環的時候。第一個for循環的時候i=1不得變,但是第二個for循環是作為第一個for循環的循環體。sum每次都要重新賦值。其實這種最好就是自己debug跟蹤一下,就很清楚了。望采納。
  • 1 回答
  • 1 關注
  • 1703 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號