第11094题
Scratch编程题:计算列表清零所需的魔法操作次数

样例运行效果1 样例运行效果2

题目描述

小杨有一个装着数字的小篮子(列表),里面放着n个非负数字(比如[2, 3, 4],1≤n≤20)。他的任务是通过一系列“魔法操作”,把篮子里所有数字都变成0。

每次操作需要按照以下步骤进行:

  1. 找最大的数字:在篮子里找到最大的数字。如果有多个相同的最大值,选位置最靠后的那个(即从上往下数最下边的)。
  2. 找最小的非零数字:在篮子里所有还不是零的数字中,找到最小的那个。
  3. 施展魔法:把第一步找到的最大数字,替换为该数字减去第二步找到的最小数字。

默认小猫角色,白色背景,请你帮助小杨计算出一共需要多少次这样的“魔法操作”,才能让所有数字都变成0。

举个例子: [2, 3, 4][2, 3, 2][2, 1, 2][2, 1, 1][1, 1, 1][1, 1, 0][1, 0, 0][0, 0, 0] 一共7次。

输入描述

新建列表data,用于存储篮子中的数据。 输入列表示例

输出描述

新建变量ans,用于存储最后的结果。 输出变量示例

输入输出样例

样例1

输入:data = [2, 3, 4] 输出:ans = 7

样例2

输入:data = [1, 3, 2, 2, 5] 输出:ans = 13

注意事项

  1. 变量名的拼写(包括大小写)要和题目完全一致。
  2. 输出结果存放在对应变量中即可,无需使用“说…”或“说…,2秒”积木块。
  3. 列表直接用“+”功能赋值进行测试即可,无需写代码赋值。 列表赋值示例