📜  门| GATE CS 2018 |第 44 题

📅  最后修改于: 2021-09-25 04:16:45             🧑  作者: Mango

考虑以下用伪代码编写的程序。假设 x 和 y 是整数。

Count (x, y) {
    if (y !=1 ) {
        if (x !=1) {
            print("*");
            Count (x/2, y);
        }
        else {
            y=y-1;
            Count (1024, y);
        }
    }
}

调用Count(1024, 1024) print语句的次数是 _______ 。

注意 –这是数字类型问题。
(一) 10230
(乙) 10
(三) 1023
(四) 23010答案:(一)
说明:首先调用 Count(1024, 1024) 并减去 x/2 的值。 ‘x’ 将被打印 10 次。在 count=10 时,x 的值将变为 1。
gate_cs_2018_c

由于 x=1,内部 else 循环将开始执行。在每次调用时,y 的值将减 1,并一直执行直到 y 的值变为 1(即1023 次调用)。

由于 count() 为每个 y=1023 递归调用,count() 为每个 y 调用 10 次。因此, 1023 x 10 = 10230

答案是 10230。这个问题的测验