pta 习题集 数列求和-加强版
给定某数字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 <iostream> #include <string.h> #include <stdlib.h> #include <stdio.h> #include <math.h> #include <string> #include <map> using namespace std; typedef long long int LL; LL a,n; LL cnt; LL b[200005]; int main() { scanf("%lld%lld",&a,&n); cnt=200000; LL cot=cnt; LL x=0; for(LL i=n;i>=1;i--) { b[cnt]=(a*i+x)%10; x=(a*i+x)/10; cnt--; } int tag=1; if(x!=0) { printf("%lld",x); tag=0; } for(LL i=cnt+1;i<=cot;i++) { printf("%lld",b[i]); tag=0; } if(tag) printf("0"); printf("\n"); return 0; }