Consider the following function:
4 phương ánCó giải thích
void t(int n, int base)
{if(n>0 && base>0)
{t(n/base, base);
System.out.print(n%base + " ");
}
}What is the output when the statement t(100, 8); 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: "1 4 4". Hàm gọi đệ quy trước rồi mới in, nên các số dư bật ra theo chiều ngược: t(100, 8) gọi t(12, 8), t(12, 8) gọi t(1, 8), t(1, 8) gọi t(0, 8) và lời gọi này dừng ngay vì điều kiện n lớn hơn 0 không còn đúng. Khi quay về, t(1, 8) in 1%8 = 1, t(12, 8) in 12%8 = 4, t(100, 8) in 100%8 = 4, cho 1 4 4; đó đúng là biểu diễn cơ số 8 của 100 vì 1 nhân 64 cộng 4 nhân 8 cộng 4 bằng 100. Dãy "1 2 0" không ứng với số dư nào trong chuỗi, vì ba số dư thu được chỉ là 1, 4 và 4. Dãy "1 6 6" đọc thành 166 trong cơ số 8, tức giá trị 118, không phải 100. Phương án "None of the others." bị loại vì dãy 1 4 4 đã khớp đúng cả giá trị lẫn thứ tự in.
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