Internet公司面试题之六

互联网公司面试题之六
问题:给定a和n,计算a+aa+aaa+a...a(n个a)的和,请注意a和n的取值范围分别为[1,9]和[1,100]

答:实现代码如下:
i,k,j;
main(a,n){
   char s[100],t[100];
   for(;~scanf("%d%d",&a,&n);){
       for(i=1,t[0]=s[0]=0;i<n+1;++i) {s[i]=t[i]=a;}
       for(i=2;i<n+1;++i)
         for(k=n;k>=i;--k){
              t[k]+=s[k]; j=k;
              for(;t[j]>=10;) {t[j-1]+=t[j]/10;t[j]%=10;--j;}                  
         }       
       if(t[1]>=10) {t[1]-=10;++t[0];}
       for(i=0;i<n+1;++i) t[i]+='0';
       t[n+1]='\0';
       printf("%s\n",t[0]=='0'?t+1:t);               
   }       
}



运行结果为:

Internet公司面试题之六