我有这个问题:
在给定的targetBase中将v值增加1。例如 增量(“1044”,5)应返回“1100”。在上面的例子中,'4'+ 1 = '5'不是基数5中的有效符号。在这种情况下,设置 当前字符为'0'并增加前面的字符。 重复,直到找到可以在其中增加的角色 目标基础系统。
到目前为止,据我所知,它应该更改最后一个值,如果它高于1到0和0到1。 到目前为止,我的代码中有:
public static String increase(String v, int targetBase)
for (int i = value.length(); i<0; i--) {
if (v.charAt(i) == base - 1) {
v = value.replace(v.charAt(i), '0');
return v;
但是我不知道如何处理这个问题以及我应该使用哪些方法。我可以获得有关如何执行此操作的任何提示吗?
答案 0 :(得分:0)
可能这不是你教授希望你解决它的方式,但可以这样做:
public static String increase(String v, int targetBase) {
return Integer.toString(Integer.parseInt(v, targetBase) + 1, targetBase);
}
将给定的String
解析为给定基数中的int
,递增结果并将其转换回给定基数中的String
。
如果您需要支持更大的数字,可以使用Long
代替Integer
:
public static String increase(String v, int targetBase) {
return Long.toString(Long.parseLong(v, targetBase) + 1, targetBase);
}
如果您需要支持任意精度数字,请使用BigInteger
:
public static String increase(String v, int targetBase) {
return new BigInteger(v, targetBase).add(BigInteger.ONE).toString(targetBase);
}