5-38 数列求和-加强版 (20分)
给定某数字AA(1\le A\le 91≤A≤9)以及非负整数NN(0\le N\le 1000000≤N≤100000),求数列之和S = A + AA + AAA + \cdots + AA\cdots AS=A+AA+AAA+⋯+AA⋯A(NN个AA)。例如A=1A=1, N=3N=3时,S = 1 + 11 + 111 = 123S=1+11+111=123。
输入数字AA与非负整数NN。
输出其NN项数列之和SS的值。
123
#include <iostream> #include <cstdio> #include <cmath> #include <queue> #include <stack> #include <map> #include <algorithm> #include <vector> #include <string> #include <cstring> #include <sstream> #define INF 100000000 using namespace std; int a,n; int ans[500000]; int main() { scanf("%d%d",&a,&n); if(n==0) { printf("0\n"); return 0; } int cnt=n; for(int i=0;i<n;i++) { ans[i]=cnt*a; cnt--; } int j=0; while(ans[j]>0) { ans[j+1]+=ans[j]/10; ans[j]=ans[j]; j++; } reverse(ans,ans+j); for(int i=0;i<j;i++) { printf("%d",ans[i]); } printf("\n"); return 0; }