怎么用代码写出下面这个问题

输入数值A(1<=A<=9),输入数值N(0<=N<=100)
求数列S
S=A+A A+A A A+ . . .+ A A . . .A(N个A),例如A=1时,若N=3,则输出A=1+11+111=123

代码如下:

#include <iostream>
using namespace std;

int main()
{
    int a,n;
    int shift=0;
    char buf[100];
    int cnt=0,i,t;
    cin >> a >> n;
    for (i=0;i<n;i++)
    {
        t = (n-i)*a + shift;
        buf[cnt++] = '0'+t%10;
        shift = t/10;
    }
    for(i=cnt-1;i>=0;i--)
        cout << buf[i];
    cout<<endl;
    return 0;
}