测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A25249. 编程实现:有无限个格子从左到右依次排开,编号依次是 0、1、2、3、4、5、6、7、8、9、10......;金钱鼠初始在 0号格子,除 0 号格子外,其余每个格子都有金瓜子,从 1 号格子开始,每个格子的金瓜子数量分别是 1、2、3、4、5、1、2、3、4、5......,以此类推。给定一个整数 n,以及 n 个不同的整数,金钱鼠只能向右跳跃 n 次,每次从 n 个不同整数中选一个作为此次向右…

填空题 容易

题目描述

编程实现:有无限个格子从左到右依次排开,编号依次是 0、1、2、3、4、5、6、7、8、9、10......;

金钱鼠初始在 0号格子,除 0 号格子外,其余每个格子都有金瓜子,从 1 号格子开始,每个格子的金瓜子数量分别是 1、2、3、4、5、1、2、3、4、5......,以此类推。

给定一个整数 n,以及 n 个不同的整数,金钱鼠只能向右跳跃 n 次,每次从 n 个不同整数中选一个作为此次向右跳的格子数,每个整数只能选一次。金钱鼠会收集跳跃到的格子中的金瓜子,请合理选择整数的顺序并计算金钱鼠最多能收集多少颗金瓜子。

例如:n = 3;3 个不同的整数是 1、3、6,金钱鼠按以下顺序选择跳跃的格子数,来收集最多的金瓜子:

第一次跳跃,选择整数 3,向右跳 3 格,收集 3 颗金瓜子;

第二次跳跃,选择整数 1,向右跳 1 格,收集 4 颗金瓜子,目前收集了 7 颗金瓜子;

第三次跳跃,选择整数 6,向右跳 6 格,收集 5 颗金瓜子,目前收集了 12 颗金瓜子;

金钱鼠最多收集 12 颗金瓜子。

输入描述:

第一行输入一个整数 n(1≤n≤9),表示金钱鼠跳跃的次数;

第二行输入 n 个不同的整数(1≤n≤100),表示金钱鼠可以选择跳的格子数,整数之间以一个空格隔开。

输出描述:

输出一个整数,表示金钱鼠最多可以收集的金瓜子数。

样例输入:

3
1 3 6

样例输出:

12

参考答案

import itertools def f(i): if i % 5 == 0: return 5 else: return i % 5 n = int(input()) steps = list(map(int, input().split())) max_total = 0 for perm in itertools.permutations(steps): current = 0 total = 0 for step in perm: current += step total += f(current) if total > max_total: max_total = total print(max_total)
上一题 下一题