习题2.3 数列求和-加强版 (模拟)
习题2.3 数列求和-加强版 (20 分)
给定某数字A(1)以及非负整数N(0),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A)。例如A=1, N=3时,1。
输入格式:
输入数字A与非负整数N。
输出格式:
输出其N项数列之和S的值。
输入样例:
1 3
输出样例:
123
题解:大数的加法模拟+找规律
1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 using namespace std;
5 const int maxn=1e5+10;
6 typedef long long ll;
7 ll num[maxn];
8 int main()
9 {
10 ll a,n;
11 cin>>a>>n;
12 if(n==0)
13 cout<<0<<endl;
14 else
15 {
16 ll cnt=0;
17 ll tmp=0;
18 for(ll i=0;i<n;i++)
19 {
20 tmp+=(n-i)*a;
21 num[cnt++]=tmp%10;
22 tmp/=10;
23 }
24 if(tmp)
25 printf("%lld",tmp);//注意如果最前面超过了10,也需要进位
26 for(ll i=cnt-1;i>=0;i--)
27 printf("%lld",num[i]);
28 }
29 return 0;
30 }