2-06. 数列求和(20)(ZJUPAT 数学)
题目链接:http://pat.zju.edu.cn/contests/ds/2-06
给定某数字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 |
1 3 |
123 |
2 |
6 100 |
7407407407407407407407407407407407407407407407407407407407407407407407407407407407407407407407407340 |
3 |
1 0 |
0 |
代码例如以下:
#include <cstdio> #include <cmath> int a[100017]; int main() { int A, N; while(~scanf("%d%d",&A,&N)) { if(N == 0) { printf("0\n"); continue; } int tt = 0,p = 0; int j = 0; for(int i = N; i >= 1; i--) { tt = A*i+p; p = tt/10; a[j++] = tt%10; } if(p > 0) { a[j++] = p; } for(int i = j-1; i >= 0; i--) { printf("%d",a[i]); } printf("\n"); } return 0; }