题目详情 - 7-38 数列求和-加强版 (pintia.cn)
题目描述
给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A)。例如A=1, N=3时,S=1+11+111=123。
输入格式
输入数字A与非负整数N。
输出格式
输出其N项数列之和S的值。
样例
1 3
123
代码
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 450000;
int num[N];
int main()
{
int a, n;
cin >> a >> n;
int i = 0, x = 0;//x记录进位
while(1)
{
x += a * (n - i);
num[i ++ ] = x % 10;
x /= 10;
if(x == 0 && i >= n) break;//特殊例子:9 3
}
//输出
for(int j = i - 1; j >= 0; j -- ) cout << num[j];
return 0;
}
题目类型,解题思路
数组解决C++在高精度上的限制