加密算法(1)

提交数: 651, 通过率: 58.53%, 平均分: 58.99

题目描述:

某字符串(字节数为3的倍数)编码规则如下: 

(1)将该字符串内码分成3个字节一组,顺次连接后得到24位二进制数; 

(2)将得到的24位二进制数字按每6位一组分成4组,每组6个位; 

(3)将每组6位二进制数分别转换为十进制数; 

(4)将每个十进制数转换为1个加密字符,对应的";密码表";按数值由小到大依次为"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

请按照上述方法,设计了一个字符串(仅包含ASCII字符)加密的程序。

输入格式:

输入一行字符串。

输出格式:

输出加密后的字符串。

样例输入:

This is an example

样例输出:

VGhpcyBpcyBhbiBleGFtcGxl

提示:

完善如下代码:

rs = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
s = input( ).strip()  #去掉行末的回车符'\n'
ans =""
for i in ___①____________:
    a1 = ord(s[i])
    a2 = ord(s[i + 1])
    a3 = ord(s[i + 2])
    b1 = a1 // 4
    b2 = a1 % 4 * 16 + a2 // 16
    b3 = __②__________
    b4 = a3 % 64
    ans = ans + rs[b1] + rs[b2] + rs[b3] + rs[b4]
print( ans)
时间限制: 1000ms
空间限制: 256MB

来源: 选考模拟题