互联网公司面试题之六

问题:给定a和n,计算a+aa+aaa+a...a(n个a)的和,[color=red]请注意a和n的取值范围分别为[1,9]和[1,100][/color]。

答:实现代码如下:

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);
}
}



运行结果为:

[img]http://dl.iteye.com/upload/attachment/605471/bb1dd22e-fcd8-3b47-be73-cf10b77992ef.jpg[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值