1 问题描述
某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:
每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
要求输入值返回加密值
2 解题思路
- 第一步: 输入四位整数,input函数
- 第二步: 根据各十百千位上的数字进行变化,求整及求余函数
3 解题方法
def encrypt(n): digitsSingle = n % 10 digitsTen = n // 10 % 10 digitsHundred = n // 100 % 10 digitsThousands = n // 1000 % 10 redigitsSingle = (digitsSingle + 5) % 10 redigitsTen = (digitsTen + 5) % 10 redigitsHundred = (digitsHundred + 5) % 10 redigitsThousands = (digitsThousands + 5) % 10 redigitsThousands, redigitsSingle = redigitsSingle, redigitsThousands redigitsHundred, redigitsTen = redigitsTen, redigitsHundred return redigitsSingle + redigitsTen * 10 + redigitsHundred * 100 + redigitsThousands * 1000 n = int(input()) print(encrypt(n))
第1行: 定义加密函数encrypt
第2-5行: 分别定义各十百千位的数字并通过计算、求整、求余等方式为其赋值
第6-9行: 根据题意为各十百千位的数字进行计算变化
第10-11行: 根据题意交换个千、十百的数字
第12行: 给函数返回加密后的值
第15行: input函数输入n的值
第16行: 打印函数值,也就是最终的加密结果值
代码运行结果为: