📜  门| GATE CS 2018 |简体中文第44章

📅  最后修改于: 2021-06-29 04:16:19             🧑  作者: 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语句的次数为_______。

注–这是数值类型的问题。
(A) 10230
(B) 10
(C) 1023
(D) 23010答案: (A)
说明:首先,将调用Count(1024,1024)并将x的值减去x / 2。 “ x”将被打印10次。在count = 10时,x的值将变为1。
gate_cs_2018_c

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

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

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