暴力解法 哈哈哈
sum=1000000
for a in range(1,5):
for b in range(1, 5):
for c in range(1, 5):
for d in range(1, 5):
for e in range(1, 5):
for f in range(1, 5):
for g in range(1, 5):
for h in range(1, 5):
if a+b*7+c*49+d*343+e*2401+f*16807+g*117649+h*823543==sum:
print(a+b+c+d+e+f+g+h)
贪心算法
def max_divisions():
total_amount = 10**6 # 总金额为100万元
divisions = [] # 存放每份金额
# 找到所有7的幂次方并存储在列表中
powers_of_7 = []
power = 1
while power <= total_amount:
powers_of_7.append(power)
power *= 7
# 贪心地分配金额
for amount in reversed(powers_of_7):
count = min(5, total_amount // amount) # 每个金额最多分5份
total_amount -= count * amount
divisions.extend([amount] * count)
if total_amount == 0:
break
return len(divisions), divisions
# 输出结果
max_count, divisions = max_divisions()
print(f"最多可以分为 {max_count} 份:")
for i, amount in enumerate(divisions):
print(f"{i+1}. {amount} 元")