每日一九度之 题目1051:数字阶梯求和
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:7568
解决:2572
- 题目描述:
-
给定a和n,计算a+aa+aaa+a...a(n个a)的和。
- 输入:
-
测试数据有多组,输入a,n(1<=a<=9,1<=n<=100)。
- 输出:
-
对于每组输入,请输出结果。
- 样例输入:
-
1 10
- 样例输出:
-
1234567900
相当于大数的加法吧。但是比大数加法要简单很多。
//Asimple #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <cctype> #include <cstdlib> #include <stack> #include <cmath> #include <set> #include <map> #include <string> #include <queue> #include <limits.h> #define INF 0x7fffffff using namespace std; const int maxn = 105; typedef long long ll; int a, n; int sum[maxn]; int main(){ while( ~scanf("%d %d",&a, &n) ){ memset(sum, 0, sizeof(sum)); int c, i, j; for(i=1; i<=n; i++){ c = 0; for(j=n; j>=n-i+1; j--){ if( sum[j] + a + c >= 10 ){ sum[j] = sum[j] + a + c - 10; c = 1; } else { sum[j] += a + c; c = 0; } } if( c == 1 ){ sum[j] = sum[j] + 1 ; } } for(i=0; i<=n; i++){ if( i == 0 && sum[i] == 0 ){ continue; } printf("%d",sum[i]); } printf("\n"); } return 0; }
低调做人,高调做事。