简体   繁体   English

如何在 java 中使用 recrsion 打印从 1 到 n 的数字

[英]How to print numbers from 1 to n using recrsion in java

public static void increase(int N){
    int a = 1;

    if(b <= N) {
        System.out.print(a + " ");
        a++;
    } else {
        increase(N);                
    }
}

I can see the problem with this approach that the int a gets initialized to 1 every time the code goes for a recursive call.我可以看到这种方法的问题,即每次代码进行递归调用时,int a 都会被初始化为1 Can anyone suggest the correct solution?任何人都可以提出正确的解决方案吗?

You have to create one additional private method to count current value.您必须创建一种额外的private方法来计算当前值。

public static void increase(int N) {
    increase(1, N);
}

private static void increase(int a, int N) {
    if (a <= N) {
        if (a > 1)
            System.out.print(' ');

        System.out.print(i);
        increase(a + 1, N);
    }
}

You can just put a outside the function:你可以在 function 外面放a

// I don't know your class
private a = 1;

static void increase(int N){
        
    int a = 1;
    if(b <= N){
        System.out.print(a+" ");
        a=a+1;
    
        
    }
    else
    {
        increase(N);                
    }

}
static void increase(int N, int a){
    if (a>N) return;
    System.out.print(a+" ");
    a=a+1;
    increase(N,a);
}

//example call from static context print 1-100
increase(100,1);
public static void main(String[] args) { increase(10,1); } private static void increase(int N,int begin){ if(begin <= N){ System.out.print(begin+" "); begin=begin+1; increase(N,begin); } return; }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM