一个3位整数通过增加K位而转换成最大值
2022-02-16 本文已影响0人
Billsion
描述:
给定一个三位整数N和一个整数K,通过增加整数N中任意一位数,最多增加K位,获得最大值
例如:
N = 512 and K = 10 ,return 972
N = 191 and K = 4 , return 591
public static int max3DigitNumSolution(int N, int K) {
if (K == 0) return N;
int result = 0;
int x = N;
int y = K;
for (int i = String.valueOf(N).length() - 1; i >= 0; i--) {
int divider = (int) Math.pow((double) 10, (double) i);
if (y == 0) {
result += x ;
break;
} else if (x / divider + y >= 9) {
result += 9 * divider;
} else {
result += (x / divider + y) * divider;
}
y = y + x / divider - 9;
y = y > 0 ? y : 0;
x = x % divider;
}
return result;
}