首页 > 解决方案 > 计算子数组的总和

问题描述

我不会说英语,所以请不要评判:)

我需要你帮忙做一个练习。

该程序从用户那里获得一个数组大小和一个数字。

数字是目标 - 有一个搜索该数字的循环。

它应该在数组中至少出现两次,并且程序应该计算从左到右最远的两个数字之间的整数之和。

例如:用户想要数组中的 10 个整数:

4, 6, 0, 12, 55, 2, 0, 12, 7, 12

该程序将从最左边的 12 到最右边的 12 中的所有数字相加。

运算:12+55+2+0+12+7+12 = 100

我什至不知道从哪里开始,并且非常感谢任何帮助。谢谢!

标签: arraysc

解决方案


您需要按如下方式应用逻辑(不会帮助您编写代码)

  1. 通过数组迭代(逐个遍历所有元素),直到到达给定数字的第一个位置。将其标记为开始(例如,如上所述,3 将从 0 开始计数)

  2. 从开始在数组中前进,直到找到另一个匹配项。保持该位置为终点。(上述数组为 7)

  3. 再次从数组的端点继续,直到遇到另一个数字或到达数组的末尾。如果到达终点,跳到第 6 步。(上述数组为 9)

  4. 如果是另一个数字,则将此标记为终点(将7更改为9)

  5. 重复步骤 3

  6. 现在计算从开始到结束的所有数字的总和(从 3 到 9)

完毕 !


推荐阅读