给定a和n,计算a+aa+aaa+a...a(n个a)的和(大数据处理)
- 题目描述:
-
给定a和n,计算a+aa+aaa+a...a(n个a)的和。
- 输入:
-
测试数据有多组,输入a,n(1<=a<=9,1<=n<=100)。
- 输出:
-
对于每组输入,请输出结果。
- 样例输入:
-
1 10
- 样例输出:
-
1234567900
从题中就可以看出,当a = 9, n = 100的时候,一个int类型的数是存不下100位的数,所以不能运用平常的方法来求,下面介绍我的解法,我声明一个向量v用来存储a+aa+aaa+a...a(n个a)的和,temp是用来存储a...a(n个a)的,从个位向高位分别相加,hight用来存储进位的。
- #include <iostream>
- #include <vector>
- using namespace std;
- int main(){
- int a, n;
- int sum = 0;
- vector<int> v;
- vector<int> temp;
- vector<int>::iterator it;
- int hight = 0; //存储进位
- while(cin >> a >> n){
- v.clear();
- temp.clear();
- v.push_back(a);
- temp.push_back(a);
- for(int i = 2; i <= n; i++){
- temp.push_back(a);
- int j = temp.size() - 1;
- int k = v.size() - 1;
- hight = 0;
- sum = 0;
- while(k >= 0 && j >= 0){ //从低位向高位相加
- sum = temp[j] + v[k] + hight;
- hight = 0;
- if(sum > 9){
- hight = sum / 10; //求进位
- }
- v[k] = sum % 10;
- k--;
- j--;
- }
- //if(hight > 0){
- while(j >= 0){ //可能要加的数比总的位数还要多,比如 9 + 99;
- sum = temp[j] + hight;
- hight = 0;
- if(sum > 9){
- hight = sum / 10;
- }
- v.insert(v.begin(), sum % 10);
- j--;
- }
- if(hight > 0){//如果还有进位,那就放到最高位
- v.insert(v.begin(), hight);
- }
- //}
- }
- for(it = v.begin(); it != v.end(); it++){
- cout << *it;
- }
- cout << endl;
- }
- return 0;
- }
结果:a = 9 n = 200,a+aa+aaa+a...a = 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110910
下面有个人给出了更简单的解法:直接模拟小学加法从个位数开始加,该进位的进位,然后存到一个栈里面,最后出栈输出就完事了,代码:
- #include <cstdio>
- #include <stack>
- using namespace std;
- int main()
- {
- // freopen("1.txt", "r", stdin);
- int a, n, i, t, c;
- while(~scanf("%d %d", &a, &n))
- {
- stack<int> S;
- for(c=0,i=1; i<=n; i++)
- {
- t = (n-i+1)*a;
- S.push((t+c)%10);
- c = (t+c)/10;
- }
- if(c>0)
- S.push(c);
- while(!S.empty())
- {
- printf("%d", S.top());
- S.pop();
- }
- printf("\n");
- }
- return 0;
- }
但是这个有个缺点,就是当n好大,t = (n - i + 1) * a 会溢出,这个程序的有点是运行速度很快,我上面的代码当n比较大的时候,运行速度很慢。但不会溢出。
给定a和n,计算a+aa+aaa+a...a(n个a)的和(大数据处理)相关推荐
- 给定a和n,计算a+aa+aaa+aaaa+...+a...a(n个a) 的和
看到一道题,感觉挺有意思的,拿来解解.题目描述如下: 题目详情: 给定a和n,计算a+aa+aaa+aaaa+...+a...a(n个a) 的和. 输入描述: 测试数据有多组,以文件结尾.每行输入a, ...
- C++练习11:计算a+aa+aaa+aa…a+…
C++练习11:计算a+aa+aaa+aa-a+- 题目 方法1(for循环) 方法2(while循环) 题目 输入2个正整数a和n,计算a+aa+aaa+aa-a+-例如,输入2和3,计算2+22+ ...
- 【Python基础题9】计算a + aa + aaa + aaaa的值
#计算a + aa + aaa + aaaa的值 print('请输入一个数字:') a = input() n1 = int( "%s" % a ) n2 = int( &quo ...
- 计算a+aa+aaa+...
计算a+aa+aaa+aaaa+...,例如,当a=2时,计算前5项和就是计算2+22+2222+22222. 首先我们要构造这样的数,很明显,22222=2+2^10+2^100+2^1000+2^ ...
- 计算 a+aa+aaa+aaaa+aaaaa+ 的和_海南A级景区,三亚市就有14个,你都去过吗
日前,海南省旅游资源规划开发质量评定委员会发布2020年第2号和2020年第3号公告,海南长影环球100奇幻乐园批准为国家4A级旅游景区,海南霸王岭国家森林公园和桂林洋国家热带农业公园批准为国家3A级 ...
- c语言,计算a+aa+aaa+......,使用函数定义的方法
#include<stdio.h> int fn(int a,int n);//函数定义 int main(void) { int a,n,sum=0,i,t; ...
- [C题目]输入整数a和n,计算a+aa+aaa+aaaa+......(共有n项)
规律:前一项乘以10加上a等于后一项. 1.sum为所有项累加之和的结果 2.k表示某一项的数值 #include <stdio.h> int main() ...
- python习题计算a+aa+aaa+aaaa的结果 lintcode题目
方法一(最简单的方法): 方法二(for循环): Python for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串. for循环一般格式:for 循环变量 in 可迭代对象: # 循环内容 ...
- C语言经典问题10-计算a+aa+aaa+...的值
任务描述 本关任务:编写一个函数计算a+aa+aaa+-+aaaa-aa(n个a)的值,在主程序调用该函数进行输出.输出,其中a和n由键盘输入. 注意:通项 term = term * 10 + a ...
最新文章
- swift闭包 notes http://www.gittielabs.com
- 《深度学习的数学》二刷总结
- nginx php fpm 日志,nginx下php-fpm不记录php报错日志怎么办?
- 粒子群 多目标 matlab_matlab 粒子群求解三角形垂心位置
- 天池 在线编程 课程表(拓扑排序 + 回溯)
- mac开发配置手册(全)
- android 下拉刷新实现方式,Android RecyclerView设置下拉刷新的实现方法
- V神已抵京,倒计时4天!6大理由告诉你为什么要参加“2019以太坊技术及应用大会”...
- Spring boot中如何获取profiles环境
- 2018 KubeCon + CloudNativeCon成功召开
- WebQQ3.0体验
- ds18b20触摸没反应_关于DS18B20无法正常使用的问题
- (大数据应用考察)全国水资源分析可视化
- 新手小白~千元左右新手入门值得推荐的十款吉他
- 多人群聊聊天室java_#java 聊天室(一)—— 实现一个简单Telnet多人群聊聊天室...
- 8代u能装服务器系统吗,8代U安装win7,几代U支持win7
- 2017.11.15作业
- word饼图如何画引导线_#excel表格饼状图制作#如何在饼形图中添加引导线(Excel)...
- excel表格行宽列高怎么设置_解决方案:Excel自动调整列宽和行宽什么是快捷键? [Excel设置行高度自适应]...
- 小波变换(wavelet transform)的通俗解释(一)
热门文章
- 【转】详解Windows消息分类以及WM_COMMAND与WM_NOTIFY的区别,以及模拟发送控件通知消息
- 【转】算法导论学习笔记 一 分治算法
- php病毒图片后缀名,脚本图片类后门病毒的完美使用方法
- c语言哪个方法称为程序大门,学会这8个经典小程序,就相当于跨入了C语言大门...
- 运行mapreduce程序yarn的web端显示进度
- python syslog 接口_python接口测试之日志功能
- linux虚拟机上安装域名,虚拟机如何安装linux系统
- mysql创建数据库没有默认值报错_详解Mysql数据库date, datetime类型设置0000-00-00默认值(default)报错问题...
- AVR单片机计算器C语言源程序,AVR单片机简单计算器的Proteus仿真实现+源码
- cass生成曲线要素文件_几种常见的CASS字体异常问题,教你如何解决