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;
    }

  • 相关阅读:
    还原网站上被压缩的JS代码方便阅读
    让chrome浏览器变成在线编辑器
    awk之NF的妙用
    Xargs用法详解
    CU论坛常用知识点汇总
    awk中RS,ORS,FS,OFS区别与联系
    SHELL十三问[转载自CU论坛]
    关于shell中常见功能的实现方式总结
    shell实现ftp命令示例
    MySQL基础
  • 原文地址:https://www.cnblogs.com/zengguoqiang/p/8342866.html
Copyright © 2011-2022 走看看