题目描述如下

给定某数字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

看到本题后,有了两种想法;

第一种:将基数字存为字符串,利用string 来增加字符串的长度 string str+=basestr;

然后将str转换为整型,与sum累和,再将sum存为字符串。

若用此种方法的话要使用到string->int 和 int->string,借此熟悉一下相关知识。

在c++中比较方便的是使用stringstream;

使用之前需要包含头文件string 和 sstream

#include <string>

#include <sstream>

 string转int

int num;

string str;

stringstream stream1(str);

//stringstream stream1;     stream1<<str;        //将str写入

stream1>>num;        //将流内的内容输出到num中

int转string

int num;

string str;

str = std::to_string(num);        //将num转换为字符赋值给str 。        缺点是c++11才支持

但在实现的时候发现这条路走不通,因为无论怎么操作,都有可能超出int的范围。然后考虑用数组的方法。

第二种:因为每一位的数字都是相同的,考虑用数组的方法

1 1 1 1

1 1 1

1 1

1

st[0] = 4*1+rem(rem:余数)

st[1] = 3*1+rem

...依此类推

代码如下:

// 数列求和(加强版)
#include <iostream>
int st[1000000];        //存放数据的数组
using namespace std;
int main(){int base;cin>>base;int num;cin>>num;if(num==0){        //若num为0,即前0项和,直接输出0返回 cout<<"0";return 0;}int reminder = 0;int cnt = 0;for(int i=0;i<num;i++){int temp = reminder + (num-i)*(base);if(temp>9){      //若大于9,则产生余数 reminder = temp/10;st[i] = temp%10;cnt++;}else{reminder = 0;st[i] = temp;cnt++;}}if(reminder>0){     //计算到最后还有余数,就让余数存在cnt的位置 st[cnt] = reminder;cnt++;}for(int i=cnt-1;i>=0;i--){cout<<st[i];}
}

【C++】数列求和-加强版相关推荐

  1. 7-11 数列求和-加强版 (20 分)

    7-11 数列求和-加强版 (20 分) 给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A).例如A=1, N=3时,S=1+11 ...

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

    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+ ...

  3. python数列求和-加强版_ES6深入浅出-3 三个点运算 新版字符串-1.函数与对象的语法糖...

    主要讲的内容 时间充裕的话就讲,模板字面量 默认参数值 首先讲es6之前,我们是怎么做的.例如我们要写一个求和的函数, 请两个参数的和,但是如果有的人就是穿一个参数呢? 那么b没有传值,b的值是多少呢 ...

  4. PTA基础编程题目集-7-38 数列求和-加强版

    方法一:超时 #include<iostream> #include<algorithm> #include<cmath> #include<cstring& ...

  5. Java黑皮书课后题第5章:*5.24(数列求和)编写程序,计算下面数列的和:1/3+3/5+5/7+7/9+……95/97+97/99

    5.24(数列求和)编写程序,计算下面数列的和:1/3+3/5+5/7+7/9+--95/97+97/99 题目 题目概述 破题 代码 运行示例 题目 题目概述 5.24(数列求和)编写程序,计算下面 ...

  6. Java黑皮书课后题第1章:1.6(数列求和)编写程序,显示1+2+3+4+5+6+7+8+9的结果

    Java黑皮书课后题第1章:1.6(数列求和) 题目 题目描述 槽点 代码 代码块 区分println(x)与println("x") 法1法2选用 修改日志 题目 题目描述 1. ...

  7. Java学习小程序(4)数列求和

    (1)有数列为:9,99,999...........9999999999.要求是用程序计算此数列的和.(3种方法) (2)有数列:1+1/2+1/3+1/4.......+1/n.要求使用交互的方式 ...

  8. ZZULIOJ 1052:数列求和4

    数列求和4 题目描述 输入n和a,求a+aa+aaa+-aa-a(n个a),如当n=3,a=2时,2+22+222的结果为246. 输入 包含两个整数,n和a,含义如上述,你可以假定n和a都是小于10 ...

  9. 数列求和 java_[代码展示]数列求和

    import java.util.*; // Compiler version JDK 11.0.2 //今天, 我来给大家讲下用Java自定义函数 //例子是数列求和 class Dcoder { ...

  10. PHP学习笔记02:自然数列求和

    PHP学习笔记02:自然数列求和 1.在d:\xampp\htdocs里创建文件demo02.php 2.编写源代码 <!DOCTYPE html><head><titl ...

最新文章

  1. WinCE项目应用之车载导航
  2. openresty开发系列38--通过Lua+Redis 实现动态封禁IP
  3. 头文件和库文件的区别
  4. python链表删除尾部节点_python单链表中如何查找和删除节点?
  5. PHP面试题:在PHP中error_reporting这个函数有什么作用?
  6. 使用BurpSuite抓取HTTPS网站
  7. oracle 中的几天后,几年后
  8. [置顶] Java面试题全集(中)
  9. Android开发之Glide设置View背景图的方法
  10. uboot 的 bootcmd 和bootargs参数详解
  11. 修改element-ui源码使日期范围date-picker支持年范围选择
  12. Dynamics CRM2011 通过DeveloperToolkit在VS中部署遇到的问题
  13. php中图片怎么加样式,html5实现各种图片样式实例用法汇总
  14. Java学习从入门到精通[转]
  15. 强连通图------(1)通过两次DFS或BFS判断是不是强连通图
  16. 信息系统项目管理师---综合类计算
  17. NIVIDIA 硬解码学习4
  18. mysql skip 1062_【20180205】MySQL 1032和1062跳过错误总结
  19. 用PhotoShop如何改变一张图片的方向
  20. CREATE TABLESPACE语法

热门文章

  1. 双色球网页历史数据爬取
  2. 凑算式(枚举与深度优先搜索)
  3. (转)Openbravo ERP介绍(二)
  4. DDNS请求到底请求了什么
  5. 电影下载合并教程 (转)
  6. TIdTCPClient的几种方法
  7. STM32 ADC采样频率的理解
  8. 至尊宝代表哪一种人?
  9. Python+Django+Mysql电影推荐系统 基于用户、项目、内容的协同过滤推荐算法 MovieRecommendSystemPython python实现协同过滤推荐算法实现 源代码下载
  10. 百度云同步盘服务器错误,百度云同步盘