Consider the following function:
4 phương ánCó giải thích
void fun(int n)
{if(n > 0)
{System.out.print(" " + n );
fun(n-2);
}
}What is the output when the statement fun(9); is run?
Các phương án trả lời
Chọn một phương ánLời giảiChọn phương án để mở
Đáp án đúng: "9 7 5 3 1". Thân hàm in giá trị n rồi mới gọi lại chính nó với n-2, nên mỗi lần in xảy ra trước khi lún sâu thêm một tầng: fun(9) in 9 rồi gọi fun(7), fun(7) in 7 rồi gọi fun(5), tiếp tục in 5, in 3, in 1, và tới fun(-1) thì điều kiện n lớn hơn 0 không còn đúng nên dừng mà không in gì. Vậy màn hình nhận đủ năm số lẻ giảm dần từ 9 tới 1. Dãy "1 3 5 7 9" là thứ tự ngược lại, nó ứng với việc đặt lệnh in sau lời gọi fun(n-2) để mỗi tầng chỉ in lúc quay về. Dãy "9 7 5 3" dừng sớm một bước, tức điều kiện là n lớn hơn 1 chứ không phải n lớn hơn 0, nên mất lần in 1. Dãy "7 5 3 1" thiếu số 9 ở đầu, như thể tầng đầu tiên chỉ gọi tiếp mà không in, trong khi fun(9) in ngay 9 trước đã.
Cùng phần 3
Consider the following function:
int fun(int n)
{if (n < 0)
return(fun(-n));
else if(n<5)
return(2);
else
return(n*fun(n/2));
}
What is the value of fun(-3)?Có lời giảiCâu hỏiConsider the following function:
void fun(int n)
{System.out.print(" " + n % 5);
fun(n/3);
}
What will happen if the statement fun(21); is run?Có lời giảiCâu hỏiConsider the following function:
void fun(int n)
{if (n < 0)
{System.out.println(“-“);
fun(-n);
}
else if(n<10)
System.out.println(n);
else
{fun(n/10);
System.out.println(n%10);
}
}
What values of n are directly handled by the stopping (base) case?Có lời giảiCâu hỏiCả 41 câu của chủ đề41 câu
Xuất hiện trong 1 bộ đề
Đi tiếp từ đây