九度1051
给定a和n,计算a+aa+aaa+a...a(n个a)的和。
因为是大数加法,所以需要用到数组。我的算法是利用堆栈的思想,将低位到高位依次入栈,输出时再出栈即可,其中需要用到一个变量t计算进位。
我惊喜地发现论坛上有位大神的算法和我的是一样的,但我一开始没有考虑到a为0的时候,惭愧惭愧……
废话不多说了,下面贴代码:
#include<stdio.h> int main() { int a,n; while(scanf("%d%d",&a,&n)!=EOF) { int i,t=0,sum[110],flag=0; for(i=0;i<n;i++) { sum[i]=((n-i)*a+t)%10; t=((n-i)*a+t)/10; } sum[n]=t; for(i=0;i<=n;i++) if(sum[i]!=0) flag=1; if(flag==0) printf("0"); else { if(sum[n]!=0) printf("%d",sum[n]); for(i=n-1;i>=0;i--) printf("%d",sum[i]); } printf("\n"); } return 0; }