给定某数字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
//这道题作为加强版的问题在于,N大到一定程度,超过范围,那么我们可以用数组解决
#include
using namespace std;
int main(){
int i,a,n,m=0;
int s[100001];
cin>>a>>n;
if(n==0) cout<<"0";
else{
for(i=n;i>0;i--){//从n到1,m计数这个整数的末尾值,然后取余存到s数组
m=m+i*a;//这里最为关键,读者可以自行举例代入计算,就会发现其规律
//谈个闲话,基础的许多代码都可通过模拟其过程实现,也有很多代码包含数学思维,利用数学归纳其规律,通过代码实现
s[i]=m%10;
m=m/10;
}
if(m!=0) cout<
cout< }
return 0;
}
上一篇:求一些触动你内心的句子
下一篇:人们描述鱼的句子