將一個數(shù)字拆分成多個數(shù)字之和Python可以理解為一個整數(shù)的分箱問題。
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供拜泉網站建設、拜泉做網站、拜泉網站設計、拜泉網站制作等企業(yè)網站建設、網頁設計與制作、拜泉企業(yè)網站模板建站服務,十年拜泉做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
所以我們定義一個長度為四的數(shù)組,每個數(shù)組最大能取到4,所以想到5進制,開始循環(huán)遍歷,四個元素之和等于4即滿足條件。
所以在寫程序的時候把滿足相加等于4的元素,把含有0的全部彈出來,之后再出重就得到答案了。
你可以將數(shù)字轉換為字符串,然后遍歷字符串并將每個字符轉換為整數(shù):
[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('請輸入一串數(shù)字,是一串子:')
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]))
對n進行分解質因數(shù),應先找到一個最小的質數(shù)k,然后按下述步驟完成:
(1)如果這個質數(shù)恰等于n,則說明分解質因數(shù)的過程已經結束,打印出即可。
(2)如果nk,但n能被k整除,則應打印出k的值,并用n除以k的商,作為新的正整數(shù)你n,重復執(zhí)行第一步。
(3)如果n不能被k整除,則用k+1作為k的值,重復執(zhí)行第一步。
程序源代碼:
實例(Python 2.0+)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def reduceNum(n):
print '{} = '.format(n),
if not isinstance(n, int) or n = 0 :
print '請輸入一個正確的數(shù)字 !'
exit(0)
elif n in [1] :
print '{}'.format(n)
while n not in [1] : # 循環(huán)保證遞歸
for index in xrange(2, n + 1) :
if n % index == 0:
n /= index # n 等于 n/index
if n == 1:
print index
else : # index 一定是素數(shù)
print '{} *'.format(index),
break
reduceNum(90)
reduceNum(100)
以上實例輸出結果為:
90 = 2 * 3 * 3 * 5100 = 2 * 2 * 5 * 5
a?=?"123456789"
b?=?[a[i:i?+?3]?for?i?in?range(0,?len(a),?3)]
c=','.join(b)
print(c)
最后輸出為str類型的格式
123,456,789
而不是
[123,456,789]