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

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

問大佬們一道算法題

問大佬們一道算法題

慕容0056306 2019-08-19 17:02:51
給定正整數 K,你需要找出可以被 K 整除的、僅包含數字 1 的最小正整數 N。返回 N 的長度。如果不存在這樣的 N,就返回 -1。示例 1:輸入:1輸出:1解釋:最小的答案是 N = 1,其長度為 1。示例 2:輸入:2輸出:-1解釋:不存在可被 2 整除的正整數 N 。示例 3:輸入:3輸出:3解釋:最小的答案是 N = 111,其長度為 3。提示:1 <= K <= 10^5來源:力扣(LeetCode)鏈接:https://leetcode-cn.com/problems/smallest-integer-divisible-by-k著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。題目意思就是輸入一個K(1 <= K <= 100000),找一個N(N的值可以是1,11,111,1111,11111......),使得N%K=0,找出這個最小的N,輸出N的位數。下面是我寫的代碼。class?Solution?{ ????public?int?smallestRepunitDivByK(int?K)?{ ????????if?(K?%?2?==?0?||?K?%?5?==?0?||?K?<?1?||?K?>?Math.pow(10,?5))?{ ????????????return?-1; ????????} ????????BigInteger?N?=?BigInteger.valueOf(0); ????????BigInteger?s=?BigInteger.valueOf(10); ????????for?(int?i?=?0;;?i++)?{ ????????????N=N.add(s.pow(i)); ????????????if?(Objects.equals(N.divideAndRemainder(new?BigInteger(String.valueOf(K)))[1],?new?BigInteger("0")))?{ ????????????????System.out.println(N); ????????????????return?i?+?1; ????????????} ????????} ????} }但是卡在K=19927了,調試到幾百個1都除不盡這個數,要怎么證明并找出哪些數是無解的呢?
查看完整描述

1 回答

?
一凡

TA貢獻43條經驗 獲得超8個贊

N的取值范圍很少呀

1

11

111

1111

11111

111111

...?

依次除一下不就知道結果了。

查看完整回答
反對 回復 2019-09-09
  • 1 回答
  • 0 關注
  • 1561 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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