【C++】数列求和-加强版
题目描述如下:
给定某数字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++】数列求和-加强版相关推荐
- 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 ...
- 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+ ...
- python数列求和-加强版_ES6深入浅出-3 三个点运算 新版字符串-1.函数与对象的语法糖...
主要讲的内容 时间充裕的话就讲,模板字面量 默认参数值 首先讲es6之前,我们是怎么做的.例如我们要写一个求和的函数, 请两个参数的和,但是如果有的人就是穿一个参数呢? 那么b没有传值,b的值是多少呢 ...
- PTA基础编程题目集-7-38 数列求和-加强版
方法一:超时 #include<iostream> #include<algorithm> #include<cmath> #include<cstring& ...
- 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(数列求和)编写程序,计算下面 ...
- Java黑皮书课后题第1章:1.6(数列求和)编写程序,显示1+2+3+4+5+6+7+8+9的结果
Java黑皮书课后题第1章:1.6(数列求和) 题目 题目描述 槽点 代码 代码块 区分println(x)与println("x") 法1法2选用 修改日志 题目 题目描述 1. ...
- Java学习小程序(4)数列求和
(1)有数列为:9,99,999...........9999999999.要求是用程序计算此数列的和.(3种方法) (2)有数列:1+1/2+1/3+1/4.......+1/n.要求使用交互的方式 ...
- 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 ...
- 数列求和 java_[代码展示]数列求和
import java.util.*; // Compiler version JDK 11.0.2 //今天, 我来给大家讲下用Java自定义函数 //例子是数列求和 class Dcoder { ...
- PHP学习笔记02:自然数列求和
PHP学习笔记02:自然数列求和 1.在d:\xampp\htdocs里创建文件demo02.php 2.编写源代码 <!DOCTYPE html><head><titl ...
最新文章
- WinCE项目应用之车载导航
- openresty开发系列38--通过Lua+Redis 实现动态封禁IP
- 头文件和库文件的区别
- python链表删除尾部节点_python单链表中如何查找和删除节点?
- PHP面试题:在PHP中error_reporting这个函数有什么作用?
- 使用BurpSuite抓取HTTPS网站
- oracle 中的几天后,几年后
- [置顶] Java面试题全集(中)
- Android开发之Glide设置View背景图的方法
- uboot 的 bootcmd 和bootargs参数详解
- 修改element-ui源码使日期范围date-picker支持年范围选择
- Dynamics CRM2011 通过DeveloperToolkit在VS中部署遇到的问题
- php中图片怎么加样式,html5实现各种图片样式实例用法汇总
- Java学习从入门到精通[转]
- 强连通图------(1)通过两次DFS或BFS判断是不是强连通图
- 信息系统项目管理师---综合类计算
- NIVIDIA 硬解码学习4
- mysql skip 1062_【20180205】MySQL 1032和1062跳过错误总结
- 用PhotoShop如何改变一张图片的方向
- CREATE TABLESPACE语法