将一个数字拆分成多个数字之和Python可以理解为一个整数的分箱问题。
站在用户的角度思考问题,与客户深入沟通,找到芜湖网站设计与芜湖网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站制作、做网站、企业官网、英文网站、手机端网站、网站推广、空间域名、虚拟主机、企业邮箱。业务覆盖芜湖地区。
所以我们定义一个长度为四的数组,每个数组最大能取到4,所以想到5进制,开始循环遍历,四个元素之和等于4即满足条件。
所以在写程序的时候把满足相加等于4的元素,把含有0的全部弹出来,之后再出重就得到答案了。
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
程序源代码:
实例(Python 2.0+)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def reduceNum(n):
print '{} = '.format(n),
if not isinstance(n, int) or n = 0 :
print '请输入一个正确的数字 !'
exit(0)
elif n in [1] :
print '{}'.format(n)
while n not in [1] : # 循环保证递归
for index in xrange(2, n + 1) :
if n % index == 0:
n /= index # n 等于 n/index
if n == 1:
print index
else : # index 一定是素数
print '{} *'.format(index),
break
reduceNum(90)
reduceNum(100)
以上实例输出结果为:
90 = 2 * 3 * 3 * 5100 = 2 * 2 * 5 * 5
你可以将数字转换为字符串,然后遍历字符串并将每个字符转换为整数:
[int(char) for char in str(634)][6, 3, 4]
使用map():
map(int, str(634)) # Python 2[6, 3, 4] list(map(int, str(634))) # Python 3[6, 3, 4]
# 这是一个长一点的,简单的,还做了一点重复的
a = input('请输入一串数字,是一串子:')
b = []
for n in range(len(a)):
if n % 4 == 0:
b.append(a[n:n + 4]) # 将a字符串每4个字符分割成列表添加到b列表中
print('输入的内容转化为的列表', b)
c = ','.join(b) # 以逗号作为分隔符,将 b中所有的元素合并为一个新的字符串
print('输入的内容每四个以逗号分开', c)
d = c.split(',')
print("把字符串转化成列表,终于用到了split", d)
for i in range(len(b)):
print('分开后第%s个是%s' % (i+1, d[i]))