比如计算从1到200用递归计算怎么写?int result = 0; public static void main(String[] args) { test t = new test();
System.out.println(t.digui(1)); } public int digui(int number) {
result = result + number;
number++;
while (number <= 200) {
digui(number);
System.out.println(result);
}
return result;
}
咋一直死循环?

解决方案 »

  1.   


    public class Test07 {
    int result = 0; public void digui(int number) {
    if (number > 200) {
    return;
    } result += number;
    digui(number + 1);
    } public static void main(String[] args) {
    Test07 t = new Test07();
    t.digui(0);
    System.out.println(t.result);
    }
    }
      

  2.   

    lz改成:
    int result = 0;public static void main(String[] args) {test t = new test();
    System.out.println(t.digui(1));}public int digui(int number) {
    result = result + number;
    number++;
    if (number <= 200) {
    digui(number);
    System.out.println(result);
    }
    return result;
    }就不会死循环了
      

  3.   

    lz改成:
    int result = 0;public static void main(String[] args) {test t = new test();
    System.out.println(t.digui(1));}public int digui(int number) {
    result = result + number;
    number++;
    if (number <= 200) {
    digui(number);
    System.out.println(result);
    }else{
    return result;
    }
    }就不会死循环了
      

  4.   

    从1到200什么?求和还是阶乘还是
    问题都没描述清楚public static void main(String[] args) {    test t = new test();
        System.out.println(t.digui(200));}public int digui(int number) { //递归求和
        if (number <= 1) return number;
        return number + digui(number-1);
    }
      

  5.   

    参考下:
    int digui(int n)
    {
    if(n==0)
    {
    return n;
    }
    else
    {
    return n+digui(n-1);
    }
    }
      

  6.   

                    number++;
    while (number <= 5) {
    digui(number);
    System.out.println(result);
    }
    number=2 满足number<=5的条件,所以会一直执行while循环。
      

  7.   

    这是我帮你改过的public class Test1{
    int result = 0;
    public static void main(String[] args) {
        Test1 t = new Test1();
        t.digui(1);
    }public void digui(int number) {
    result = result + number;
    number++;
    if (number <= 20) {
    digui(number);
    }else
    System.out.println(result);
    }}
      

  8.   

    用if语句代替else语句就不会出现死循环了。
      

  9.   

    用if语句代替while语句就不会出现死循环了。
      

  10.   


    public class Test {
    public static void main(String[] args) {
    Test t = new Test();
    System.out.println(t.digui(200));
    } public int digui(int number) {
    if(number == 1){
    return 1;
    }else{
    return number + digui(number - 1);
    }
    }
    }
      

  11.   

    谢谢各位大侠...用了while就表示进入此方法后就一直处于number不满足的条件,就算最外层满足了.那么掉自己后while还是不满足条件,依然number一直处于不等于200,所以会一直循环下去.明白了.多谢指教额!