我写了递归方法来更改基础,但似乎无法获得交互的解决方案。我的递归方法如下所示:
public static String baseR(int y, int x){
if (y<x) {
return new String(""+y);
} else {
return new String (baseR(y/x,x)+("" +(y%x)));
}
}
到目前为止,我的迭代解决方案看起来像这样:
public static String base(int y,int x){
int remainder = 0;
while(y!=0){
y=y/x;
remainder=y%x;
}
return new String(y+(""+ remainder));
}
他们不会打印出相同的东西,我尝试了很多不同的方法而没有成功,有人能指点一下吗?
最佳答案
每次进入while
循环时,remainder
的值都会被覆盖。您应在覆盖前“使用” remainder
的现有值。
另外,在用商数覆盖y
的值之前,应计算余数的值。
public static String base(int y,int x){
int remainder = 0;
String value = "";
while(y!=0){
remainder=y%x;
value= remainder + value;
y=y/x;
}
return value;
}
关于java - 如何编写一种方法以任何递归形式返回数字的字符串表示形式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33764042/