第41期-加密

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行: 打印函数值,也就是最终的加密结果值

代码运行结果为:
第41期-加密

上一篇:手撸架构,Redis面试41问


下一篇:C 练习实例41 - static