习题2.3 数列求和-加强版 (模拟)

习题2.3 数列求和-加强版 (20 分)

给定某数字A(1)以及非负整数N(0),求数列之和S=A+AA+AAA++AAA(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 }

 

posted @ 2019-07-25 20:55  *starry*  阅读(402)  评论(0编辑  收藏  举报