7-38 数列求和-加强版 (20 分)
给定某数字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
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<algorithm> 2 #include<iostream> 3 #include<cstring> 4 #include<cstdio> 5 #include<cmath> 6 using namespace std; 7 int main(){ 8 int a,n,sum,t,tp,arr[100010]; 9 scanf("%d%d",&a,&n); 10 tp = sum = a * n; 11 for(int i = 0;i <= n + 8;i++){ 12 arr[i] = tp % 10; 13 t = tp / 10; 14 sum -= a; 15 tp = sum + t; 16 } 17 for(int i = n + 8;i >= 0;i--){ 18 if(arr[i] > 0){ 19 for(int j = i;j >= 0;j--){ 20 printf("%d",arr[j]); 21 } 22 break; 23 } 24 } 25 if(n == 0){ 26 printf("0"); 27 } 28 printf("\n"); 29 return 0; 30 }