📜  门| GATE-CS-2015(套装3)|第 59 题

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

假设 c = 〈c[0], … , c[k – 1]〉 是一个长度为 k 的数组,其中所有条目都来自集合 {0, 1}。对于任何正整数 a 和 n,请考虑以下伪代码。

DOSOMETHING (c, a, n)
z ← 1
for i ← 0 to k – 1
    do z ← z2 mod n
    if c[i] = 1
       then z ← (z × a) mod n
return z 

如果 k = 4, c = <1, 0, 1, 1>, a = 2 and n = 8, 那么 DOSOMETHING(c, a, n) 的输出是____________。
(一) 0
(乙) 1
(三) 2
(四) 3答案:(一)
解释:

DOSOMETHING (c, a, n)
z ← 1
for i ← 0 to k – 1
    do z ← z2 mod n
    if c[i] = 1
       then z ← (z × a) mod n
return z 

如果 k = 4, c = <1, 0, 1, 1>, a = 2 and n = 8, 那么 DOSOMETHING(c, a, n) 的输出是____________。

For i = 0, z = 1 mod 8 = 1, since c[0] = 1, z = 1*2 mod 8 = 2.

For i = 1, z = 2*2 mod 8 = 1, since c[1] = 0, z remains 4.

For i = 2, z = 16 mod 8 = 0 

一旦 z 变为 0,DOSOMETHING() 中的任何语句都不能使其非零。

这个问题的测验