diff --git a/算法周更班/class_2022_09_3_week/Code03_AllNumbersModToZeroMinTimes.java b/算法周更班/class_2022_09_3_week/Code03_AllNumbersModToZeroMinTimes.java index 5a2b9bc..234703a 100644 --- a/算法周更班/class_2022_09_3_week/Code03_AllNumbersModToZeroMinTimes.java +++ b/算法周更班/class_2022_09_3_week/Code03_AllNumbersModToZeroMinTimes.java @@ -26,8 +26,8 @@ public class Code03_AllNumbersModToZeroMinTimes { if (num < m) { minTimes = map[num]; } else { - for (int j = 0; j <= 9; j++) { - int mod = (int) (((long) num + (long) Math.pow(10, j)) % m); + for (long add = 1; add <= 1000000000; add *= 10) { + int mod = (int) (((long) num + add) % m); minTimes = Math.min(minTimes, map[mod] + 1); } } @@ -50,7 +50,7 @@ public class Code03_AllNumbersModToZeroMinTimes { // 当前弹出的余数是cur int cur = queue[l++]; // 能加的数字,从1枚举到10^9 - for (int add = 1; add <= 1000000000; add *= 10) { + for (long add = 1; add <= 1000000000; add *= 10) { // 比如,m == 7 // 当前余数是cur,cur变成余数0,至少要a次 // 我们想知道 : (哪个余数b + add) % m == cur @@ -70,7 +70,7 @@ public class Code03_AllNumbersModToZeroMinTimes { // 也就是说,b = cur - (add % m), // 如果不小于0,那就是这个b,是我们要找的余数 // 如果小于0,那就是b+m,是我们要找的余数 - int from = cur - (add % m); + int from = cur - (int)(add % m); if (from < 0) { from += m; }