Consider the following function:
4 phương ánCó giải thích
void fun(int n)
{if(n<=0)
return;
else if (n<7)
{System.out.print(" " + n);
fun(n-2);
}
else
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: "5 3 1". Đọc theo đúng thụt lề: n không lớn hơn 0 thì trả về ngay; n nhỏ hơn 7 thì in n rồi gọi fun(n-2); còn n từ 7 trở lên thì chỉ gọi fun(n-2) mà không in gì. Vậy fun(9) không in và gọi fun(7); fun(7) cũng không in vì 7 không nhỏ hơn 7, gọi fun(5); fun(5) in 5 rồi fun(3) in 3, rồi fun(1) in 1, rồi fun(-1) gặp n không lớn hơn 0 nên trả về. "1 3 5" là thứ tự ngược, chỉ xảy ra nếu lệnh in đặt sau lời gọi đệ quy. "7 5 3 1" in cả 7, nhưng điều kiện in là n nhỏ hơn 7 nên tại đúng 7 nhánh else được chọn và không in. "7 5 3" vừa in thêm 7 lại vừa bỏ mất 1, trong khi 1 vẫn nhỏ hơn 7 nên vẫn được in trước khi đệ quy xuống -1.
Cùng phần 3
Consider the following function:
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ó lời giảiCâu hỏiConsider the following function:
void fun(int n)
{int m = n/2;
int k = n%2;
if (m > 0)
{fun(m);
}
System.out.print(k + " ");
}
What is the output when the statement fun(11); is run?Có lời giảiCâu hỏiConsider 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ỏiCả 41 câu của chủ đề41 câu
Xuất hiện trong 1 bộ đề
Đi tiếp từ đây