时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:6718
解决:2280
-
题目描述:
-
给定a和n,计算a+aa+aaa+a...a(n个a)的和。
-
输入:
-
测试数据有多组,输入a,n(1<=a<=9,1<=n<=100)。
-
输出:
-
对于每组输入,请输出结果。
-
样例输入:
-
1 10
-
样例输出:
-
1234567900
思路:
会超出long long的表示范围,典型的大数运算,注意循环的方式,第n位的数要加n-i次。
sum[i] += a*(n-i);
代码:
#include <stdio.h>
int main(void)
{
int n, a, i;
unsigned int sum[100];
int flag;
while (scanf("%d%d",&a, &n) != EOF)
{
for (i=0; i<100; i++)
sum[i] = 0;
i = 0;
do
{
sum[i] += a*(n-i);
if (sum[i] >= 10)
{
sum[i+1] += sum[i]/10;
sum[i] %= 10;
}
i++;
} while(i<n);
flag = 1;
for (i=99; i>=0; i--)
{
if (flag)
{
if (sum[i] == 0)
continue;
flag = 0;
}
printf("%d", sum[i]);
}
printf("\n");
}
return 0;
}
/**************************************************************
Problem: 1051
User: liangrx06
Language: C
Result: Accepted
Time:0 ms
Memory:912 kb
****************************************************************/