给定某数字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
#include <stdio.h>
#include <stdlib.h>
int main()
{
int m,n;
int i,j;
scanf("%d%d",&m,&n);
int a[100007];
int g=0;
int p=0;
int h=0;
if(n==0)
{
printf("0");
return 0;
}
for(i=n;i>1;i--)
{
g=i*m+h;
a[p]=g%10;
h=g/10;
p++;
}//反序存最高位以下位的每个数到数组
g=m+h;
while(g>9)
{
a[p]=g%10;
g=g/10;
p++;
}//继续存最后一次的数(大于一位数的)
a[p]=g;//存入最高位
for(i=p;i>=0;i--)
{
printf("%d",a[i]);
}
return 0;
}
来源:CSDN
作者:半零落
链接:https://blog.csdn.net/qq_43634412/article/details/104226425