📜  门| GATE-CS-2015(Set 3)|第59章

📅  最后修改于: 2021-06-29 00:17:25             🧑  作者: 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并且n = 8,则DOSOMETHING(c,a,n)的输出为____________。
(A) 0
(B) 1
(C) 2
(D) 3答案: (A)
解释:

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并且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()中的所有语句都不会使其变为非零。

这个问题的测验