將一個數字拆分成多個數字之和Python可以理解為一個整數的分箱問題。
站在用戶的角度思考問題,與客戶深入溝通,找到蕪湖網站設計與蕪湖網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網站制作、做網站、企業(yè)官網、英文網站、手機端網站、網站推廣、空間域名、虛擬主機、企業(yè)郵箱。業(yè)務覆蓋蕪湖地區(qū)。
所以我們定義一個長度為四的數組,每個數組最大能取到4,所以想到5進制,開始循環(huán)遍歷,四個元素之和等于4即滿足條件。
所以在寫程序的時候把滿足相加等于4的元素,把含有0的全部彈出來,之后再出重就得到答案了。
對n進行分解質因數,應先找到一個最小的質數k,然后按下述步驟完成:
(1)如果這個質數恰等于n,則說明分解質因數的過程已經結束,打印出即可。
(2)如果nk,但n能被k整除,則應打印出k的值,并用n除以k的商,作為新的正整數你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 '請輸入一個正確的數字 !'
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 一定是素數
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]))