Pyhton解题:某个公司采用加密方式传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下: 每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位 交换

直接贴代码:

#coding:utf-8
'''
某个公司采用加密方式传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:
每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位
交换。编写加密的函数与解密的函数。 '''
#加密过程
def jiami(num):
    if num>1000 and num<9999:
        a = num/1000%10 #取出千位数
        a1 = (a+5)%10 #根据条件+5再取余
        b = num/100%10# 取出百位数
        b1 = (b+5)%10
        c = num/10%10 #取出十位数
        c1 = (c+5)%10
        d = num%10 #取出个位数
        d1 = (d+5)%10
        return d1*1000+c1*100+b1*10+a1 #返回为:千位数和个数交换,百位数和十位数交换
#解密过程:
def jiemi1(num):
    w = [0, 0, 0, 0]
    #把num值放到w列表里
    for i in range(4):
        w[i] = num % 10
        num /= 10
    #索引0的值和索引3的值交换
    w[0] = w[3] + w[0]
    w[3] = w[0] - w[3]
    w[0] = w[0] - w[3]
    print w
    #索引1的值和索引2的值交换
    w[1] = w[1] + w[2]
    w[2] = w[1] - w[2]
    w[1] = w[1] - w[2]
    print w
    #解密方法:
    for i in range(4):
        if w[i] % 10 - 5 < 0:
            w[i] = w[i] % 10 - 5 + 10
        else:
            w[i] = w[i] % 10 - 5
    #解密后拼接起来
    print  w[3] * 1000 + w[2] * 100 + w[1] * 10 + w[0]
print jiami(1235)
print jiemi(876)


总结取千位数:num/1000%10  百位数 :num/100%10  十位数:num/10%10  个位数: num/1%10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值