求4个数字组成的不重复三位数,Python简洁解法
生活随笔
收集整理的這篇文章主要介紹了
求4个数字组成的不重复三位数,Python简洁解法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
求4個數字組成的不重復三位數,Python解法
題目要求:
求所有由5,6,7,8組成的數字不重復的三位數
不重復的三位數,即不能出現555,566這種
通過分析,可以使用畫樹的方法來確定要求的三位數的值與個數
按照上圖所示可以確定由5,6,7,8共可以組成24個不重復的三位數
于是寫出Python代碼如下:
輸出共24種:
567 已輸出次數:1 568 已輸出次數:2 576 已輸出次數:3 578 已輸出次數:4 586 已輸出次數:5 587 已輸出次數:6 678 已輸出次數:7 675 已輸出次數:8 687 已輸出次數:9 685 已輸出次數:10 657 已輸出次數:11 658 已輸出次數:12 785 已輸出次數:13 786 已輸出次數:14 758 已輸出次數:15 756 已輸出次數:16 768 已輸出次數:17 765 已輸出次數:18 856 已輸出次數:19 857 已輸出次數:20 865 已輸出次數:21 867 已輸出次數:22 875 已輸出次數:23 876 已輸出次數:24時間復雜度和給出的數字位數d有關,兩次for循環(huán)次數數量級都是d(都是循環(huán)d-1次),遞歸的次數也是d-1次,因此時間復雜度為O(d3)
以上方法也可以用于3位數或5位數,只需要將5678改成567或56789
如‘56789’(12×5=60種):
56789對應輸出的60種不重復三位數:
567 已輸出次數:1 568 已輸出次數:2 569 已輸出次數:3 576 已輸出次數:4 578 已輸出次數:5 ... 976 已輸出次數:56 978 已輸出次數:57 985 已輸出次數:58 986 已輸出次數:59 987 已輸出次數:60這是我能想到的較容易理解的方法
如果你有更簡單易懂的方法,歡迎一起評論交流
總結
以上是生活随笔為你收集整理的求4个数字组成的不重复三位数,Python简洁解法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么用java实现打字功能_怎么用JAV
- 下一篇: 动态规划思路和Python解决零钱兑换问