import java.math.BigInteger;
public class Main {
public static int solution(int n, int k, String numStr) {
//1.使用可变字符串StringBuffer
StringBuffer sb = new StringBuffer(numStr);
//2.循环k次
for (int i = 0; i < k; i++) {
//2.1 创建临时可变字符串
StringBuffer newsb = new StringBuffer();
//2.2 遍历可变字符串,将每个字符转为数字+1
for (int j = 0; j < sb.length(); j++) {
newsb.append(sb.charAt(j) - '0' + 1);
}
//2.3 将临时可变字符串赋值给可变字符串
sb = newsb;
}
//3.将可变字符串转为BigInteger类型,再取模
BigInteger bi = new BigInteger(sb.toString());
bi = bi.mod(BigInteger.valueOf(1000000007));
return bi.intValue();
}
}
核心思路:
1.两层循环
第一层循环k次
第二层循环取出每个字符,加一,然后拼接到新的字符串上
2.java.math.BigInteger的使用,由于结果的字符串类型数字可能过长,long类型也收不下,就用大数BigInteger来接受,然后进行取模运算,最后转成int类型返回