公用用传数,数是4位的整数,在传递过程中是加密的。加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输人的四位整数加密后的值。
def func(n):
a=[0]*4
a[0]=n//1000
a[1]=n//100%10
a[2]=n//10%10
a[3]=n%10
for i in range(4):
a[i]+=5
a[i]%=10
n=a[3]*1000+a[2]*100+a[1]*10+a[0]
return n
我可以帮您解决这个问题。这是一个比较简单的加密规则,可以用以下代码实现:
num = input('请输入一个4位整数:') # 获取输入的数字
num_list = list(num) # 将数字转换成列表
for i in range(4):
num_list[i] = str((int(num_list[i]) + 5) % 10) # 加密规则,每位数字加5,取余数代替原来的数字
num_list[0], num_list[3] = num_list[3], num_list[0] # 第一位和第四位交换
num_list[1], num_list[2] = num_list[2], num_list[1] # 第二位和第三位交换
result = ''.join(num_list) # 将列表转换成字符串
print('加密后的值为:', result) # 输出加密后的值
上面的代码会提示用户输入一个4位整数,然后按照题目要求进行加密,并输出加密后的值。具体来说,我们首先将输入的数字转换成列表,然后对于每一位数字,都按照加密规则进行加密,并用列表存储加密后的结果。接着,交换第一位和第四位,第二位和第三位,最后用 join
函数将列表转换成字符串,并输出加密后的值。
当然,如果输入的不是4位整数,那么程序会报错。为了防止这种情况发生,我们可以添加一些输入判断的代码。比如:
num = input('请输入一个4位整数:') # 获取输入的数字
if not num.isdigit() or len(num) != 4: # 判断输入是否是4位整数
print('输入有误,请重新输入!')
else:
# 其他加密代码
这样的话,如果用户输入的不是数字,或者数字不是4位,程序会提示输入有误并要求用户重新输入。