java递归除以3
使用递归,我试图将一个输入除以3,直到结果小于1
到目前为止,这里是我所拥有的,但我的输出结果总是像1 1 1 1 1 1 1 1
。我相信我知道代码中的错误在哪里,但我不知道应该使用什么输入,也不知道我的方法是否编码错误。我在我认为存在问题的地方贴了一张便条,想知道是否有人能支持我,给我一个关于如何解决这个问题的提示
还有,我如何结束循环
package divideby3;
import java.util.Scanner;
public class DivideBy3 {
public static void main(String[] args) {
System.out.print("Enter number >= 1:");
int n = new Scanner(System.in).nextInt();
System.out.println("\n Negative result is:" + n);
for(int i = 1; i <= n; i++) {
System.out.print(Recusion(i) + " ");
}
}
public static double Recusion(double n) {
if(n >= 1) {
//not sure what to put here
return ;
}
else {
System.out.println("Sorry thats not number over 1!");
}
return Recusion(n / 3);
}
public static double Loop(double n) {
if(n >= 1) {
return 1;
}
double input = 0, divide = 3;
for(double i = 0; i <= n; i++) {
divide = (input / divide);
}
return divide;
}
}
# 1 楼答案
你似乎不理解递归的概念。好好读一读会有好处的。简单地说,递归是一种函数递归调用自身直到满足条件的技术
下面是一个简单的例子