7-38 数列求和-加强版

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

给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和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;
}

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

时间: 2024-08-27 02:07:56

7-38 数列求和-加强版的相关文章

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

习题2.3 数列求和-加强版 (20 分) 给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+?+AA?A(N个A).例如A=1, N=3时,S=1+11+111=123. 输入格式: 输入数字A与非负整数N. 输出格式: 输出其N项数列之和S的值. 输入样例: 1 3 输出样例: 123 #include <stdio.h> typedef int ElementType; typedef int Position; typedef int C

PAT 数列求和-加强版&#160;&#160;&#160;(20分)(简单模拟)

给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+?+AA?A(N个A).例如A=1, N=3时,S=1+11+111=123 输入格式: 输入数字A与非负整数N. 输出格式: 输出其N项数列之和S的值. 输入样例: 1 3 输出样例: 123 1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cmath> 5 #i

李洪强漫谈iOS开发[C语言-051]-数列求和

// //  main.c //  53 - 数列求和 - 李洪强 // //  Created by vic fan on 16/10/15. //  Copyright ? 2016年 李洪强. All rights reserved. // #include <stdio.h> int main(int argc, const char * argv[]) { //1 ,3,5,7... //中间有多少项相加 //sum = 0 + 1; //sum = 1 + 3; //sum = 4

UVa 1363 (数论 数列求和) Joseph&#39;s Problem

题意: 给出n, k,求 分析: 假设,则k mod (i+1) = k - (i+1)*p = k - i*p - p = k mod i - p 则对于某个区间,i∈[l, r],k/i的整数部分p相同,则其余数成等差数列,公差为-p 然后我想到了做莫比乌斯反演时候有个分块加速,在区间[i, n / (n / i)],n/i的整数部分相同,于是有了这份代码. 1 #include <cstdio> 2 #include <algorithm> 3 using namespace

[华为机试练习题]51.数列求和

题目 描写叙述: 题目描写叙述 编敲代码,输入一个正整数n.求下列算式的值.要求定义和调用函数fact(k)计算k的阶乘. 1+1/2!+ .... +1/n! 计算结果保存在double类型变量中. 接口说明 原型: void GetResult(int InputNum, double *NumResult); 输入參数: Int InputNum:输入一个正整数,进行表达式计算 char *NumResult:输出表达式的值 返回值: void 练习阶段: 0基础 代码 /*-------

GMA Round 1 数列求和(Hard)

传送门 数列求和(Hard) 在数列{$a_n$}中,$a_1=-\frac{1}{4}$,$\frac{1}{a_{n+1}}+\frac{1}{a_n}=\begin{cases}-3(n为偶数)\\3(n为奇数) \end{cases}$ 当n趋近于正无穷时,求{$a_n$}的前n项和. 由泰勒公式得 $$\frac{1}{1+x^3}=1-x^3+x^6-x^9+……+(-1)^nx^{3n}+……(x\in(-1,1))$$ 对两端从0到t进行积分得 $$\int_{0}^{t}\fr

解题报告:luogu P5745 【深基附B例】数列求和

题目链接:P5745 [深基附B例]数列求和 现在想说:\(O(N)\)的题要不怎么也想不出来,要不灵光乍现,就像这道题. 我们维护一个类似单调队列的加法单调队列: 若相加大于此数,就将队尾元素弹出,直至满足条件,顺便更新下\(maxn\)值即可. 然后遇见了烦人的头尾双指针,多了个等号就只有\(30\;pts\)了. \(Code\): #include<iostream> #include<cstdio> using namespace std; long long sum=0

在线|二轮辅导[13][等比数列概念和相关性质+数列求和05]

百度地址 高三文科数学第十三次录制视频链接:待录制: 使用方法:下载观看,能保证高清清晰度,针对百度网盘限速,请使用PanDownload软件下载,该软件的下载地址:https://www.lanzous.com/i8ua9na: 思维导图 数列专题: 典例剖析 [微专题07] 等比数列的概念和性质 [微专题08][数列求和] 错位相减法 裂项求和法 原文地址:https://www.cnblogs.com/wanghai0666/p/12390784.html

2-06. 数列求和(20)(ZJUPAT 数学)

题目链接:http://pat.zju.edu.cn/contests/ds/2-06 给定某数字A(1<=A<=9)以及非负整数N(0<=N<=100000),求数列之和S = A + AA + AAA + - + AA-A(N个A).例如A=1, N=3时,S = 1 + 11 + 111 = 123. 输入格式说明: 输入数字A与非负整数N. 输出格式说明: 输出其N项数列之和S的值. 样例输入与输出: 序号 输入 输出 1 1 3 123 2 6 100 740740740