zoukankan      html  css  js  c++  java
  • 7-38 数列求和-加强版

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

    给定某数字A(1A9)以及非负整数N(0N100000),求数列之和S=A+AA+AAA++AAA(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;
    }

  • 相关阅读:
    Nginx的启动、停止与重启
    用Java实现链表结构对象:单向无环链表
    java匿名内部类详解
    如何统计博客园的个人博客访问量
    Java 读写Properties配置文件
    java的枚举类型Enum解释
    接口测试框架1
    python几道简单的算法题
    很全的 Python 面试题
    有有面试
  • 原文地址:https://www.cnblogs.com/zengguoqiang/p/8342866.html
Copyright © 2011-2022 走看看