✨ 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