码迷,mamicode.com
首页 > 其他好文 > 详细

7-38 数列求和-加强版

时间:2018-01-25 00:14:09      阅读:363      评论:0      收藏:0      [点我收藏+]

标签:color   ati   sans   a*   优化   lang   view   ram   src   

7-38 数列求和-加强版(20 分)

给定某数字A(1A9)以及非负整数N(0N100000),求数列之和S=A+AA+AAA+?+AA?A(N个A)。例如A=1, N=3时,S=1+11+111=123。

输入格式:

输入数字A与非负整数N。

输出格式:

输出其N项数列之和S的值。

输入样例:

1 3

输出样例:

123

思路:直接用长整形累加代码简单,但是超范围了(;′⌒`),本来还试了下使用数组来进行发现还是没AC。然后换了种思路横着一个个加不行,那纵着加呢?(横纵参考下图)很完美,空间和时间上还都得到了优化(相比我之前没AC的代码)

 

技术分享图片

 

以下是AC代码:
#include<stdio.h>
#include<stack>
#include<iostream>
using namespace std;
int main()
{
    int a, n;
    cin >> a >> n;
    if (n == 0)                                //测试点最小A和N
    {
        cout << 0 << endl; return 0;
    }
    stack<int> cnt;                    //栈用来存储要输出的位
    int flag = 0;                        //保存输出以后还剩的余数
    for (int i = n; i >= 1; i--)
    {
        int temp = flag + a*i;
        cnt.push(temp % 10);
        flag = temp / 10;
    }

    if (flag!=0) cout << flag;
    while (!cnt.empty()){
        cout << cnt.top();
        cnt.pop();
    }
    cout << endl;
    return 0;
}

 


7-38 数列求和-加强版

标签:color   ati   sans   a*   优化   lang   view   ram   src   

原文地址:https://www.cnblogs.com/zengguoqiang/p/8342866.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!