时间限制: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 ****************************************************************/