增大整数———晴问算法
文章目录
- 1 题目
- 2 思路
- 3 代码
1 题目
2 思路
首先把数字n转化为字符串s,然后把第一个字符转换为数字得到正整数的首位。
- 如果输入的数位a大于首位,则把字符串s拼接在字符串化的数位后面形成新字符串ans;
- 如果输入的数位小于首位,则从首位开始依次对比数字n的每一位和数位a的大小
- 若数位a小于等于数字n的数位,则新字符串ans拼接数字n的数位;
- 否则,新字符串ans拼接数位a,然后数字n剩余的全部数位;
- 如果全部位数都对比完了,新字符串ans的长度等于数字n的长度,则把数位a拼接在新字符串的末尾(数位a小于数字n的每一位)。
考点:
- 字符串、字符和数字的转换。
- 考虑不全,容易漏情况。
3 代码
#include <cstdio>
#include<iostream>
#include<string>
using namespace std;int main(){int n, a;scanf("%d %d", &n, &a);string s = to_string(n);//cout<<s<<" ";string ans = "";int len = s.size();//cout<<len<<" ";int firstNum = s[0] - '0';//cout<<firstNum<<" ";if(a > firstNum){//cout<<a<<" ";ans += to_string(a);//cout<<ans<<" ";ans += s;//cout<<ans<<" ";}else{for(int i = 0;i < len;i++){if(s[i] - '0' >= a)ans += s[i];else{ans += to_string(a);if(len > 1){ans += s.substr(i, s.size() - 1);}break;}}if(ans.size() == s.size()) ans += to_string(a);}printf("%d", stoi(ans));return 0;
}
增大整数———晴问算法相关推荐
- C++两个整数的总和是否为整数溢出的算法实现(附完整源码)
C++两个整数的总和是否为整数溢出的算法实现 C++两个整数的总和是否为整数溢出的算法实现完整源码(定义,实现,main函数测试) C++两个整数的总和是否为整数溢出的算法实现完整源码(定义,实现,m ...
- 随机产生10个整数;设计一个算法找其中的最大的元素和最小的元素,并统计元素之间的比较次数
随机产生10个整数;设计一个算法找其中的最大的元素和最小的元素,并统计元素之间的比较次数 选择排序法 #include <iostream> #include <cstdlib> ...
- python整数拆分dp算法_整数拆分问题的四种解法【转载】
http://blog.csdn.net/u011889952/article/details/44813593 整数拆分问题的四种解法 原创 2015年04月01日 21:17:09 整数划分问题是 ...
- 整数划分java_整数划分问题及其算法
整数划分问题及其算法 一.问题描述 整数划分问题是将一个正整数n拆成一组数连加并等于n的形式,且这组数中的最大加数不大于n.如整数的6划分为: 6 5 + 1 4 + 2, 4 + 1 + 1 3 + ...
- 1.3. 一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。编写程序输入半径和高度,输出需要的桶数(一定是整数)
1.3. 一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数).问大象至少要喝多少桶水才会解渴.编写程序输入半径和高度,输出需要的桶数(一定是 ...
- java 整数乘法的算法,大整数乘法——分治算法的时间复杂度
1.1原始的低效算法 我们将n位(为方便讨论简化问题,我们假设n是2的幂)十进制整数(二进制也可以)X.Y都分为2段,每段的长度是n/2位. 如果现在直接用递归或分治进行编程,其算法复杂度为: 其中: ...
- 求组合数的算法 java,求一个整数的组合数算法(java)
开始需求: 产生一堆数字. 然后我输入一值,这个值等于这些数中的一个,或是任意多个数的和.但只能是其中一种情况. 比如我输入8.这些数里面,可以直接有8. 也可以是1+2+5 的和,也可以是 1+7 ...
- 1-5 三整数排序(算法竞赛入门经典)
书上关于三整数排序的这一问题,完全是为了让初学者去思考分支情况的,并且也要去考虑三个数其中相等的情况. 其实最后一种思想正是后面要学习的排序算法中的选择排序的一种体现. 源码如下: #include& ...
- leetcode 罗马数字与整数的转换算法
介绍: 该算法是将罗马数字转换为整数,思路如下:比如IXX,使用临时变量temp保存上一个已经遍历的罗马数字,比如:遍历时是从后往前遍历的:1> 刚开始时,temp = 0; 遍历当前遍历到第一 ...
最新文章
- 程序员难逃二八法则,如何晋升为头部20%玩家?
- option等为空的选择
- python2的idle打不开了
- 魅族 C++ 微服务框架技术内幕揭秘
- dubbo控制台安装
- 联想笔记本java环境变量_联想ThinkPad笔记本如何添加系统环境变量?
- MS CRM如果在Tab页中有Iframe选项,原来速度不慢,突然速度变慢
- 开源代码motion
- 在zephyr上使用mipi-sys-t
- 等到小牛电动车出N2再买的原因
- windows2003下如何关闭共享?
- java iecapt.exe_IECapt生成网页快照IECapt.exe下载 CutyCapt
- py将dicm格式图片转为jpg格式
- Warship+NPOI导入导出组件介绍【对象化】
- 双网卡共享上网的完全解决方案
- android调用系统录制视频教程,Android开发之使用MediaRecorder录制视频,android视频录制...
- matlab可见光通信,可见光通信研究工作matlab代码
- 688. 骑士在棋盘上的概率(中等 动态规划)
- app如何助推用户从pc端转向手机端
- 宝塔安装的数据库外网无法访问