B趣味求和
Time Limit:1000MS Memory Limit:65536K
Total Submit:397 Accepted:144
Description
编写一个程序,求Sn=a+aa+aaa+……+aa…aaa(有n个a)的值,其中a是一个数字。
Input
输入数据含有不多于50组的数据,每组数据由两个正整数(0 < a, n < 10)组成。
Output
对于每组数据a和n,计算Sn=a+aa+aaa+……+aa…aaa(有n个a)的值,每个计算结果应单独一行。
Sample Input
5 2
5 1
Sample Output
60
5
Source
#include<stdio.h>
main()
{
int a,n,c[100000],carry=0,term,i,j;//数组c[]用来存储结果的各个位上的数字
while(scanf("%d%d",&a,&n)!=EOF)
{
carry=0; //进位清零
for(i=n;i>=1;i--)
{
term=i*a+carry;
c[n-i]=term%10; //这里就等同于小学多项加法运算,carry为进位
carry=term/10;
}
if(carry!=0)
{printf("%d",carry);} //因为上面循环之后,只求出了n位数据,可能的进位在这输出
for(j=n-1;j>=0;j--)
{
printf("%d",c[j]); //这里直接输出carry,因为carry本身表示范围有限,所以此程序有一定限制性
}
printf("\n");
}
}