每日一九度之 题目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;
}

 

posted @ 2016-09-25 10:53  Asimple  阅读(172)  评论(0编辑  收藏  举报