某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,再将第一位和第四位交换。
def transform(n):
# 每位数字 + 5,然后对 10 取模
l1 = (n // 1000 + 5) % 10
l2 = (n // 100 % 10 + 5) % 10
l3 = (n // 10 % 10 + 5) % 10
l4 = (n % 10 + 5) % 10
# 交换第一位和第四位
temp = l1
l1 = l4
l4 = temp
# 拼接数字并返回
result = l1 * 1000 + l2 * 100 + l3 * 10 + l4
return result
# 主程序读入整数
n = int(input("请输入一个 4 位整数:"))
# 调用转换函数并输出结果
result = transform(n)
print("转换后的数是:", result)
以下是 Python 代码实现该加密规则:
def encrypt(num):
# 将数字转换为字符串并分离每一位数字
digits = [int(d) for d in str(num)]
# 每位数字加上5
digits = [(d + 5) % 10 for d in digits]
# 交换第一位和第四位
digits[0], digits[3] = digits[3], digits[0]
# 将加密后的数字转换为整数并返回
return int(''.join(map(str, digits)))
使用示例:
num = int(input("请输入一个 4 位整数:"))
encrypted_num = encrypt(num)
print(encrypted_num)
解密规则与加密规则相反,即将每位数字减去5,再将第一位和第四位交换。以下是 Python 代码实现该解密规则:
def decrypt(num):
# 将数字转换为字符串并分离每一位数字
digits = [int(d) for d in str(num)]
# 将加密后的数字的第一位和第四位交换
digits[0], digits[3] = digits[3], digits[0]
# 每位数字减去5
digits = [(d - 5) % 10 for d in digits]
# 将解密后的数字转换为整数并返回
return int(''.join(map(str, digits)))
使用示例:
encrypted_num = int(input("请输入一个 4 位整数:"))
decrypted_num = decrypt(encrypted_num)
print(decrypted_num)