✨ feat(euler_24.py):添加欧拉项目第24题的解决方案
📝 docs(euler_24.py):包含问题描述和算法实现
This commit is contained in:
29
solutions/0024/euler_24.py
Normal file
29
solutions/0024/euler_24.py
Normal file
@@ -0,0 +1,29 @@
|
||||
"""
|
||||
A permutation is an ordered arrangement of objects.
|
||||
For example, 3124 is one possible permutation of the digits 1, 2, 3 and 4.
|
||||
If all of the permutations are listed numerically or alphabetically, we call it lexicographic order.
|
||||
The lexicographic permutations of 0, 1 and 2 are:
|
||||
012 021 102 120 201 210
|
||||
|
||||
What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9?
|
||||
"""
|
||||
|
||||
from itertools import permutations
|
||||
|
||||
|
||||
def ordered_permutations(n: int) -> list[int]:
|
||||
digits = list(range(10))
|
||||
all_permutations = permutations(digits)
|
||||
for _ in range(n - 1):
|
||||
next(all_permutations)
|
||||
return next(all_permutations)
|
||||
|
||||
|
||||
def main():
|
||||
n = 1000000
|
||||
result = ordered_permutations(n)
|
||||
print("".join(map(str, result)))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user