最近的博文:
Python基础入门例程27-NP27 朋友们的喜好(列表)-CSDN博客
Python基础入门例程26-NP26 牛牛的反转列表(列表)-CSDN博客
Python基础入门例程25-NP25 有序的列表(列表)-CSDN博客
目录
描述
牛牛和牛妹一起玩密码游戏,牛牛作为发送方会发送一个4位数的整数给牛妹,牛妹接收后将对密码进行破解。
破解方案如下:每位数字都要加上3再除以9的余数代替该位数字,然后将第1位和第3位数字交换,第2位和第4位数字交换。
请输出牛妹破解后的密码。
输入描述:
输入一个四位数的整数。
输出描述:
输出破解后的密码,以四位数的形式。
示例1
备注:
输入不会有前置0,但是输出要保持前置0
解答:
解法1:字符串转换为数值,提取数值
a = int(input())#输入的字符串先转换为数字
qian = a // 1000 #取整除操作
bai = (a % 1000) // 100
shi = ((a % 1000) % 100) // 10
ge = ((a % 1000) % 100) % 10
list1 = [qian, bai, shi,ge] #创建列表
list2 = []#加密后的列表
for i in list1:
i = (i + 3) % 9
list2.append(i)
output = list2[2] * 1000 + list2[3] * 100 + list2[0] * 10 + list2[1]#数字替换,并转换为整数
print('%04d' % output) #格式化输出
解法2:字符串操作提取单个字符
a = input()#输入
b = []#创建列表用于存放拆分后的数字
for i in range(len(a)):
number=int(a[i])#取出字符并转换为数字
x = (number+3)%9#加密变换
b.append(x)
b[0], b[2] = b[2], b[0]#加密变换
b[1], b[3] = b[3], b[1]#加密变换
for i in b:
print(i, end="")#自动换行
说明:
考查字符串的提取操作。或考查数字的拆分。
格式化输出:print('%10.3f' % pi) #字段宽10,精度3
自动换行: print(i, end="")
运算符:取整除 //