[填空題] 本程序?qū)崿F(xiàn)文本加密。先給定序列:a1,a2,…,an,它們的取值范圍是1~n,而且互不相同。加密算法是:把原文本中第k個(gè)字符放到加密后文本的第ak個(gè)
[填空題] 本程序?qū)崿F(xiàn)文本加密。先給定序列:a1,a2,…,an,它們的取值范圍是1~n,而且互不相同。加密算法是:把原文本中第k個(gè)字符放到加密后文本的第ak個(gè)位置處。若原文本長度大于n,則只對(duì)前面n個(gè)字符加密,后面的字符不變;若原文本長度小于n,則在后面補(bǔ)字符“*”使文本長度為n后再加密。
例如:若給定序列a1,a2,…,a7分別為2,5,3,7,6,1,4。
·當(dāng)文本為“PROGRAM”時(shí),加密后的文本為“APOMRRG”。
·當(dāng)文本為“PROGRAMMING”時(shí),加密后的文本為“APOMRRGMING”。
·當(dāng)文本為“THANK”時(shí),加密后的文本為“*TA*HKN”。
下面的過程code實(shí)現(xiàn)這一算法。其中參數(shù)數(shù)組a()中存放給定序列(個(gè)數(shù)與數(shù)組a的元素個(gè)數(shù)相等)a1,a2,a3,…的值,要加密的文本放在參數(shù)變量mystr中。過程執(zhí)行完畢,加密后的文本仍然放在變量mystr中。請(qǐng)?zhí)羁铡?/p>
Option Base 1
Private Sub code(a() As Integer, mystr As String)
Dim ch As String, c1 As String
n=UBound(a)-Len(mystr)
If n>0 Then
mystr=mystr & String$(n, "*")
End If
ch=mystr
For k= (14) &g
正確答案:(14)1 (15)a(k)
參考解析:code過程首先求出序列長度和字符串長度之差n,從而確定是否在串mystr之后補(bǔ)充字符“*”;接下來,對(duì)每一個(gè)字符進(jìn)行處理,處理的次數(shù)就是字符或序列的長度,所以[14]空應(yīng)填1。循環(huán)過程中,從第k個(gè)位置取出一個(gè)字符,同時(shí)應(yīng)從序列中找出該字符經(jīng)加密后應(yīng)存放的位置,所以[15]空應(yīng)填a(k)。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。