1 条题解
-
0
题目理解
给定一个数字
a(1~9),求:[ s = a + aa + aaa + aaaa + ... + {n 次 a 的连续累加} ]
题目示例中给了两个例子:
- 输入
2,结果为2 + 22 = 24 - 输入
5,结果为5 + 55 + 555 + 5555 + 55555 = 61725
可以发现规律:
- 每一项都是前一项 * 10 + a
- 可以用循环或者递归实现
C++ 递归解法示例
#include <iostream> using namespace std; int calcSum(int a, int n) { if (n == 1) return a; return calcSum(a, n - 1) * 10 + a * n; } int main() { int a; cin >> a; int sum = 0; for (int i = 1; i <= 5; i++) { int term = 0; for (int j = 0; j < i; j++) { term = term * 10 + a; } sum += term; } cout << sum << endl; return 0; }说明:
- 外层
for循环控制项数(这里假设是 5 项,可以改为任意 n) - 内层循环生成每一项的值,例如
a=5, i=3时,生成 555 - 累加求和得到最终结果
- 输入
- 1
信息
- ID
- 716
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 10
- 标签
- 递交数
- 3
- 已通过
- 2
- 上传者
粤公网安备44195502000195号