任意輸入0~9的三個數字,輸出所有可組成的的數及其個數(使用Python語言)
比如:輸入1,2,3
則輸出:123 132 213 231 312 321
6
uj5u.com熱心網友回復:
https://www.cnblogs.com/aiguiling/p/8594023.html排列組合
import itertools
for i in itertools.product('123', repeat = 3):
print(i)
print()
for i in itertools.combinations('123', 3):
print(i)
print()
for i in itertools.permutations('123', 3):
print(i)
uj5u.com熱心網友回復:
for i in itertools.permutations(['1','2','3'], 3):print(i)
用個list.append(輸入資料)
也可以
uj5u.com熱心網友回復:
def main():
num_1 = input("請輸入數字:")
num_2 = input("請輸入數字:")
num_3 = input("請輸入數字:")
num = list()
num_print = list()
if num_1.isdigit() and num_2.isdigit() and num_3.isdigit():
if 0 <= int(num_1) <= 9 and 0 <= int(num_2) <= 9 and 0 <= int(num_3) <= 9:
if int(num_1) != int(num_2) and int(num_3) != int(num_2):
num1 = int(num_1 + num_2 + num_3)
num2 = int(num_1 + num_3 + num_2)
num3 = int(num_2 + num_1 + num_3)
num4 = int(num_2 + num_3 + num_1)
num5 = int(num_3 + num_1 + num_2)
num6 = int(num_3 + num_2 + num_1)
print("數字組合為:{},{},{},{},{},{}/合計有6種".format(num1,num2,num3,num4,num5,num6))
else:
num.append(int(num_1 + num_2 + num_3))
num.append(int(num_1 + num_3 + num_2))
num.append(int(num_2 + num_1 + num_3))
num.append(int(num_2 + num_3 + num_1))
num.append(int(num_3 + num_1 + num_2))
num.append(int(num_3 + num_2 + num_1))
for i in num:
if i not in num_print:
num_print.append(i)
print("數字組合為:{}/合計有{}種".format(num_print,len(num_print)))
else:
print("輸入錯誤,檢測到輸入的數字不在0~9之間")
return main()
else:
print("輸入錯誤,檢測到非法字符輸入!")
return main()
if __name__ == '__main__':
main()
這個代碼不是最優的
uj5u.com熱心網友回復:





轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/66805.html
