例题:
计算s=a+aa+aaa+aaaa+..+aaaaaaaaaa(99位都是a)
分析一下,把各个项拆一下
s=b1+b2+b3+b4+...+b99
b1=a
b2=10*b1+a
b3=10*b2+a
...
b99=b98*10+a
所以我们可以用迭代的方式做
#include <iostream>
using namespace std;
int bn(int a,int n);
int main()
{
int a,res;
cin>>a;
//下面是与循环,就算个3的看看吧
res=0;
for(int i=1;i<4;i++){
res+=bn(a,i);//res=bn(a,1)+bn(a,2)+bn(a,3)
}
cout<<res<<endl;
return 0;
}
int bn(int a,int n){
int b;
if(n==1)return a;
else{
b=bn(a,n-1)*10+a;
return b;
}
}
这个方法看起来太蠢了吧,首先是时间的问题,其次是只用int存不了太大的数,但是放下这里做个例子用。