Consider the following function:
4 phương ánCó giải thích
void fun(int n)
{if (n < 0)
{System.out.println(“-“);
fun(-n);
}
else if(n<24)
System.out.println(n);
else
{fun(n/24);
System.out.println(n%15);
}
}What values of n are directly handled by the stopping (base) case?
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: "n >= 0 && n<24". Hàm có ba nhánh nối nhau bằng if và else: nhánh n < 0 in dấu rồi gọi lại với -n nên là bước quy giản; nhánh n < 24 in n và kết thúc mà không gọi lại, đây mới là trường hợp cơ sở; nhánh cuối gọi fun(n/24) nên cũng quy giản. Vì nhánh thứ hai chỉ được xét sau khi điều kiện n < 0 đã sai, nó thực sự chạy với n không âm và nhỏ hơn 24, tức miền n >= 0 và n < 24. Phương án "n < 24" đọc điều kiện tách rời khỏi chuỗi if và else, bỏ qua việc mọi n âm đã bị nhánh trước bắt lấy và đẩy sang lời gọi đệ quy. Phương án "n < 0" chính là nhánh chứa lời gọi đệ quy nên không thể là điểm dừng. Phương án "n >= 24" là nhánh gọi fun(n/24) rồi in n%15, cũng đệ quy chứ không dừng.
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