题目描述
原题地址:A1104 Sum of Number Segments
中文版:B1049 数列的片段和
解题思路
找规律,关键是求数列中每个数出现的次数。因为片段是连续的,对于第 $i$ 个($i$ 从 1 开始)数所在的片段,片段起点可以是该数左边(包括 $i$ )的任意一个数,即有 $i$ 种可能;片段终点可以是该数右边(包括 $i$ )的任意一个数,即有 $n - i + 1$ 种可能。所以包含 $i$ 的片段总共有 $i * (n - i + 1)$ 种可能。
相似的题目: PAT-B1040-有几个PAT(C++)
易错点
ans += x * i * (n - i + 1);
- 将
x
放在第一个位置,乘积将自动转换为浮点数再累加,保证了精度
- 将
代码示例:
1 |
|