给定某数字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>
int main()
{
int sum[100000];
int A, N;
int carry = 0;
scanf("%d %d", &A, &N);
if (N == 0)
{
printf("0");
}
else
{
/* 对sum[]数组赋值,最大为N个A的十进制数 */
for (int i = 0; i < N; i++)
{
sum[i] = A;
}
/* 依次使sum[]数组的长度减1 */
for (int i = N - 1; i >= 1; i--)
{
sum[i] = sum[i] * (i + 1) + carry;
int temp = sum[i];
sum[i] = sum[i] % 10;
carry = temp / 10;
}
sum[0] = A + carry;
for (int i = 0; i < N; i++)
{
printf("%d", sum[i]);
}
}
return 0;
}