first commit

This commit is contained in:
2023-10-09 11:15:06 +02:00
commit e1ab376e72
56 changed files with 5734 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
# km
import math
import time
def make_change_recursive(coins, amount, start, current_change, result):
if amount == 0:
result.append(current_change[:])
return
for i in range(start, len(coins)):
coin_cents = round(coins[i] * 100)
if amount >= coin_cents:
current_change.append(coins[i])
make_change_recursive(coins, amount - coin_cents, i, current_change, result)
current_change.pop()
return result
def main():
coins = [5, 2, 0.2, 0.1, 0.05] # Available coin values
target_amount = 12.35 # Change to be made
solutions = [] # Store all valid combinations
start_time = time.perf_counter()
solutions = make_change_recursive(coins, target_amount * 100, 0, [], [])
end_time = time.perf_counter()
duration = end_time - start_time
with open("AllTheSolutionsTest1.txt", "w") as file:
# file.write("execution time: "+str(duration)+"s\n")
file.write(str(solutions))
# for solution in solutions:
# file.write(",".join(map(str, solution)) + "\n")
# print(solution,"\n")
file.write("\n"+str(duration)+"\n")
print("execution time: "+str(duration)+"s")
if __name__ == "__main__":
main()