B3867 [GESP202309 三级] 小杨的储蓄

· · 题解

欢迎大家报名洛谷网校的课程,期待和大家一起进步!

:::align{center} :::

思路分析

首先我们需要按照题目的要求定好需要的变量,并输入。

N 个存钱罐,我们可以定一个大小为 N 的数组(我们注意到 1 \le N \le 1000 ,所以我们也可以直接定义一个大小大于 1000 的数组,但是需要注意初始化)。

要存 D 天,所以我们可以使用循环来实现,i 的范围从 1D,每次存钱前,先读入要存的存钱罐编号,然后将 i 累加到该存钱罐中;最后,依次输出每个存钱罐中的钱数。注意存钱罐的编号是 0 \sim N-1

核心代码

for (int i = 1; i <= D; i++)
{
    cin >> p;
    //输入存钱罐编号,然后累加到该存钱罐
    a[p] += i;
}

//依次输出每个存钱罐中的钱数
for (int i = 0; i < N; i++)
{
    cout << a[i] << " ";
}