C++编程题1——输入字符串,输出数字最小的值
来源:互联网 发布:聊城气象数据 编辑:程序博客网 时间:2024/05/18 20:34
题目描述:
输入不限长度的字符数字,经过函数处理,输出的数字为最小值,其中0在开头无效。
例:
输入 026148
输出 102468
这是一开始想到的方法,最初的版本没有考虑到数字不限长度的问题,这里就不附上了。
主要思想就是字符串转换成数字,排序,再把数字转换成字符串输出(如果以数字形式输出,就不满足限长度的要求)
#include<iostream>#include<string>#include<sstream>using namespace std;int main(){ cout << "please input the number:" << endl; string str; cin >> str; int str_length = str.length(); int *a = new int[str_length]; for(int i=0; i < str_length; i++ ) { a[i] = str[i] - '0'; } int k = str_length; //排序 for (int i = 0; i < k; i++) { for (int j = i; j < k; j++) { if (a[i] > a[j]) { int temp = a[i]; a[i] = a[j]; a[j] = temp; } } } //找出第一个非零的数 int nozero = -1; for(int i = 0; i < k; i++) { if(a[i]!=0) { nozero = i; break; } } if(nozero!=-1) { int temp = a[0]; a[0] = a[nozero]; a[nozero]= temp; } ostringstream oss; string c; string d; for(int i=0; i<k ; i++) { oss<<a[i]; c = oss.str(); d+=c; } cout << c; delete []a; getchar(); getchar();}
最好最快的方法:
直接字符串的字符可以比较大小,不必转换成数字再比较大小
#include<iostream>#include<string>using namespace std;int main(){ string a; cin >> a; int k = a.length(); //排序 for (int i = 0; i < k; i++) { for (int j = i; j < k; j++) { if (a[i] > a[j]) { swap(a[i],a[j]); } } } //找出第一个非零的数 int nozero = -1; for(int i = 0; i < k; i++) { if(a[i]!='0') { nozero = i; break; } } if(nozero!=-1) { swap(a[0],a[nozero]); } cout << a; getchar(); getchar();}
阅读全文
0 0
- C++编程题1——输入字符串,输出数字最小的值
- (c语言)输入一串数字,输出字符串
- C语言青葱之路-----输入字符串,输出其中数字、字母、空格、其他的个数
- c++ 输入字符串,输出数字
- C++字符串输入数字输出
- 编程题:输入一个正整数数组,将他们拼接成一个数,输出拼接出所有数字中最小的一个
- 程序题:输入数字,输出字符串。 如何逆序一个字符串!
- C语言 - 字符串的输入、输出
- java编程:输入一个数字,反转输出这个数字的值
- C 输入数字,输出汉字
- 【C语言】求旋转数组的最小数字,输入一个递增排序的数组的一个旋转,输出其最小元素
- 将输入的数字字符串加金额分割符,输出
- c语言从键盘上输入一串字符串,输入两个数字a和b,截取字符串第a个到第b个字母,并输出截取后的字符串
- 输入一串数字以不同数量的空格分割数字,输出最小的数
- 输入一个字符串只包含“0~10”和”,“找出最小的数字和最大的数字(可能不止一个),输出最后剩余数字的个数,如输入”3,3,4,5,6,7,7“
- 《c 和指针》第9章第16题——数字字符串格式化输出
- C输入一个字符串,删除其中所有的数字,所有大写字母改成小写,其他不变,并输出
- 1、 输入一串字符,只包含“0-10”和“,”找出其中最小的数字和最大的数字(可能不止一个),输出最后剩余数字个数。
- HDU1561 树形DFS+DP
- JS分页
- 支付宝
- 【jzoj5358】【NOIP2017提高A组模拟9.12】【BBQ】
- 线性化与串行化比较
- C++编程题1——输入字符串,输出数字最小的值
- K最近邻算法(介绍)
- MATLAB-轨道分叉
- spring父子容器
- python脚本制作dlib数据集
- Java泛型
- php5.5新特性之yield理解
- 1035. 插入与归并
- Java经典面试题(其三)——JVM原理和调优