7-9 数列求和-加强版 (25分)
给定某数字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
思路:
4 | 3 | 2 | 1 |
---|---|---|---|
1 | |||
1 | 1 | ||
1 | 1 | 1 | |
1 | 1 | 1 | 1 |
模拟题,除此之外多了一步,将每位的总和算出来,一步一步加上去。总体还行
AC代码:
#include<iostream>
#include<stdio.h>
using namespace std;
int main(){
int a,n;
while(scanf("%d%d",&a,&n)!=EOF){
int sum[n+5];
for(int i=0;i<n+5;i++){
sum[i]=0;
}
if(n==0){
printf("0\n");
}
else{
long long m=0;
int j=n;
for(int i=n;i>=1;i--){
long long k=i*a+m;
sum[i]=(k%10);
m=k/10;
}
if(m) printf("%d",m);
int f=0;
for(int i=1;i<=n;i++){
printf("%d",sum[i]);
}
printf("\n");
}
}
return 0;
}