If statement 如何将else if语句转换为递归语句?
我试图使这段代码递归。如果int x是奇数,它应该打印“R”,如果int x是偶数,它应该打印“L”If statement 如何将else if语句转换为递归语句?,if-statement,recursion,If Statement,Recursion,我试图使这段代码递归。如果int x是奇数,它应该打印“R”,如果int x是偶数,它应该打印“L” public String findRL(int x){ s=""; while (x > 1){ if (x%2 ==0){ s = "L" + s; } else{ s = "R" + s; x = x/2; } } } 我试图使
public String findRL(int x){
s="";
while (x > 1){
if (x%2 ==0){
s = "L" + s;
}
else{
s = "R" + s;
x = x/2;
}
}
}
我试图使这段代码递归
第一步应该是让代码正常工作。它被声明为返回String
,但它从不返回s
。而且,一旦x
变为偶数,它很容易进入无限循环。让我们用类似的函数替换它:
public String findRL(int x) {
String s = "";
while (x > 1) {
if (x % 2 == 0) {
s += "L";
} else {
s += "R";
}
x /= 2;
}
return s;
}
public String findRL(int x) {
String s = "";
if (x > 1) {
if (x % 2 == 0) {
s = "L";
} else {
s = "R";
}
s += findRL(x / 2);
}
return s;
}
这可能并不等同于您尝试执行的操作,但应该足以了解如何将您的实际代码转换为递归函数:
public String findRL(int x) {
String s = "";
while (x > 1) {
if (x % 2 == 0) {
s += "L";
} else {
s += "R";
}
x /= 2;
}
return s;
}
public String findRL(int x) {
String s = "";
if (x > 1) {
if (x % 2 == 0) {
s = "L";
} else {
s = "R";
}
s += findRL(x / 2);
}
return s;
}
如果。。。else语句转换为递归,而
while
循环作为递归,通常在交互中使用隐式循环代替显式循环。欢迎使用堆栈溢出!其他用户将您的问题标记为低质量和需要改进。我对您的输入进行了重新措辞/格式化,使其更易于阅读/理解。请查看我的更改,以确保它们反映您的意图。但我认为你的问题仍然无法回答。您现在应该回答您的问题,以添加缺少的详细信息(请参阅)。如果你有进一步的问题或反馈给我,请随时给我留言。你的要求真的不清楚。方法本身不打印任何内容,但返回字符串?所以,从澄清您的需求开始,然后告诉我们您的具体处境。