[英]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.