第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

算m(1~1000)的階乘時,當m>30時結果不正確

算m(1~1000)的階乘時,當m>30時結果不正確

算法困難戶 2017-02-12 09:39:00
?public?static?void?factor(int?m) ????{ ???? int[]?A?=?{1}; ???? for(int?i?=?1;?i?<?m;?i++) ???? { ???? A?=?helper(A,?i+1); ???? } ???? for(int?i?=?A.length?-?1;?i?>=?0;?i--) ???? { ???? System.out.print(A[i]); ???? } ????} ????public?static?int[]?helper(int[]?s,?int?a)//計算一個數組s乘以m的值,比如120?*?6的值,s為[0,?2,?1],m為6 ????{ ???? int?i,temp?=?0; ???? int[]?arr?=?new?int[(s[s.length?-?1]?*?a?+?"").length()?-?1?+?s.length];//本次計算的結果長度 ???? for(i?=?0;?i?<?s.length;?i++) ???? { ???? arr[i]?=?(s[i]?*?a?+?temp)?%?10;//加上前一次的十進位數 ???? if(s[i]?*?a?+?temp?>=?10) ???? temp?=?(s[i]?*?a?+?temp)?/?10; ???? else ???? temp?=?0; ???? } ???? if(temp?!=?0)//計算出最高位的數超出一位,要進行增加位數 ???? { ???? for(int?j?=?0;?j?<?arr.length?-?s.length;?j++)//本次計算數比前次多的位數 ???? { ???? arr[i+j]=temp?%?10;//把多出的其中一位數存放在新數組中,最后返回至result[]中,i代表目前數組的最高數 ???? if(temp?>=?10) ???? temp?/=?10;//放在本循環(huán)的j++循環(huán)止中進行 ???? else ???? temp?=?0; ???? } ???? } ???? return?arr; ????}
查看完整描述

5 回答

?
習慣受傷

TA貢獻885條經驗 獲得超1144個贊

因為數字太大了,溢出了。你用long型或者double類型。
查看完整回答
1 反對 回復 2017-02-12
  • 算法困難戶
    算法困難戶
    可能是哪一部分,我感覺是16行的事,但不知到怎么改
?
qq_浮夢壹生_03287462

TA貢獻24條經驗 獲得超10個贊

你這是計算階乘的代碼?我看著不像啊。

查看完整回答
反對 回復 2017-02-13
點擊展開后面1
?
qq_浮夢壹生_03287462

TA貢獻24條經驗 獲得超10個贊

你這是計算階層的代碼?我看著不像啊。

查看完整回答
反對 回復 2017-02-13
?
算法困難戶

TA貢獻2條經驗 獲得超0個贊

第16行計算位數的代碼不對,沒有考慮到當前最高位后面的數與階乘數相乘所產生的進制問題

查看完整回答
反對 回復 2017-02-13
?
青春無極限7

TA貢獻1條經驗 獲得超0個贊

用到大整數了,因為階乘得到的結果位數太多,一般的無法得到正確結果
查看完整回答
反對 回復 2017-02-12
  • 5 回答
  • 0 關注
  • 1447 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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