7-38 数列求和-加强版(20 分)

7-38 数列求和-加强版(20 分)

给定某数字$A(1 \leq A \leq 9)$以及非负整数$N(0 \leq N \leq 100000)$,求数列之和$S=A+A A+A A A+\cdots+A A \cdots A(N \text{个} A)。$例如$A=1, N=3$时,$S=1+11+111=123$。

输入格式:

输入数字A与非负整数N。

输出格式:

输出其N项数列之和S的值。

输入样例:

1
1 3

输出样例:

1
123
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h> 
#include <string.h>
#include <math.h>
int num[1000000];
int main()
{
int A;
int N;
int i;
int j;
int t;
int flag;
scanf("%d%d",&A,&N);
if(N == 0)
printf("0\n");
else
{
flag = 0;
for(i=N, j=0; i>=1; i--, j++)
{
t = A*i + flag;
flag = t / 10;
num[j] = t % 10;
}
if(flag > 0)
{
num[j] = flag;
j++;
}
for(i=j-1; i>=0; i--)
{
printf("%d",num[i]);
}
}
return 0;
}
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×