Consider the following function:
5 phương ánCó giải thích
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(6)?
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: "12". Với n = 6 thì 6 không âm nên bỏ nhánh fun(-n), lại không nhỏ hơn 5 nên bỏ nhánh trả về 2, hàm chạy nhánh cuối và trả về 6 nhân fun(6/2) = 6 nhân fun(3). Lời gọi fun(3) thoả 3 < 5 nên trả về 2 ngay, vậy kết quả là 6 nhân 2 = 12. "2" sai vì 2 chỉ là giá trị của nhánh dừng, nó là đáp số khi đối số nằm trong khoảng từ 0 đến 4. "4" sai vì 4 là 2 nhân 2, ứng với việc nhân hai lần giá trị nhánh dừng thay vì nhân chính n với fun(n/2). "5" sai vì 5 là ngưỡng trong điều kiện n < 5, không phải giá trị trả về của bất kỳ nhánh nào. "11" sai vì chuỗi lời gọi chỉ có một phép nhân duy nhất là 6 nhân 2, không bước nào sinh ra 11.
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