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 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; }
|