給定正整數 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都除不盡這個數,要怎么證明并找出哪些數是無解的呢?
添加回答
舉報
0/150
提交
取消