public static void increase(int N){
int a = 1;
if(b <= N) {
System.out.print(a " ");
a ;
} else {
increase(N);
}
}
我可以看到這種方法的問題,即1每次代碼進行遞回呼叫時都會將 int a 初始化為。任何人都可以提出正確的解決方案嗎?
uj5u.com熱心網友回復:
您必須創建一種額外的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);
}
}
uj5u.com熱心網友回復:
你可以把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);
}
}
uj5u.com熱心網友回復:
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);
uj5u.com熱心網友回復:
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;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/376348.html
