2786: 这是一道数学题 python
2021/6/12 20:27:22
本文主要是介绍2786: 这是一道数学题 python,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
2786: 这是一道数学题:
一个数通过最小次数交换数位变成20的倍数。问最少交换次数是多少?
输入 :
一个正整数T(1<=T<=200),代表有T组输入。每个输入包含一个正整数N(1<=N<=10的18次方),N没有前导0。
输出 :
最小的交换次数。如果不能交换出20的倍数,输出-1
python代码:
t = int(input()) for i in range(t): x = input() num0 = x.find('0') # 返回0所在的索引,没有返回-1 num = 0 str1 = '02468' # 没有0直接返回结果 if num0 == -1: print(-1) else: # 只有满足至少有两个0或者一个0一个偶数,即能够被20整除 y = 0 for j in range(len(x)): if x[j] in str1 and j != num0: y += 1 break # 只有一个0 if y == 0: print(-1) # 满足至少两个0 或一个0一个偶数 else: # 最后一位是0 if x[-1] == '0': # 倒数第二位是0或偶数 if x[-2] in str1: print(0) else: print(1) # 最后一位数不是0 else: # 倒数第二位是0 if x[-2] == '0': if x[-1] in str1: print(1) # 代表最后两位数交换 else: # 特殊情况举例7007、7207 if x[:-2].find('0') == -1: print(2) # 代表7207 交换2次 else: print(1) # 代表7007 交换1次 else: if x[-2] in str1: print(1) else: print(2)
人生苦短,我用python。
这篇关于2786: 这是一道数学题 python的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-18初探Python股票自动化交易:入门指南
- 2024-09-18Python量化入门:轻松掌握量化分析基础与实战
- 2024-09-18Python量化交易:入门指南与实践
- 2024-09-18Python量化交易:入门指南与实战技巧
- 2024-09-14Python人工智能项目实战:从零开始的实践指南
- 2024-09-14探索Python人工智能资料:初学者的指南
- 2024-09-14Python人工智能资料:初学者的全面指南
- 2024-09-13Matplotlib入门:轻松绘制Python数据可视化图表
- 2024-09-13Python人工智能:初学者的入门指南
- 2024-09-13Python人工智能:轻松入门与实践