华为笔试——C++消重输出
2018-09-10 00:58:36来源:博客园 阅读 ()
题目:消重输出
题目介绍:
输入一个正整数,给出消除重复数字以后最大的整数,注意需要考虑长整数。
例:
输入:988274320
输出:9874320
题目分析:这个结果的实现需要两个步骤:消重和排序。第一步,消重。先用string 和char 将数字分别储存进char 数组,然后从左边第一个字符开始逐个向右边比较,如果有相同的字符就将左边的置换成 ‘a’ ,这样多次次循环过后988274320就变成了9a8a74320,因为是向右比较且只变换左边字符,因此a 不会重复。第二步,排序。就是循环比较,大的字符向右靠即可。
代码:
1 #include <iostream> 2 #include <string> 3 #include <math.h> 4 #include <conio.h> 5 using namespace std; 6 int main() 7 { 8 int size; 9 cout << "请输入位数:" << endl; 10 cin >> size; 11 int i = 0,j = 0,n = 0; 12 int count = 0; 13 long result = 0; 14 char c; 15 char *p = new char[size]; 16 cout << "请输入" << size << "位正整数" << endl; 17 while ((c = _getch()) != '\r') 18 { 19 if (c >= '0'&&c <= '9') 20 { 21 p[count] = c; 22 cout << c; 23 count++;//字符形式存储在数组里 24 } 25 } 26 for (i = 0; i < size; i++) 27 { 28 for (j = 0; j < size; j++) 29 { 30 if (p[i] == p[j] && i < j) 31 { 32 p[i] = 'a';//重复的数字,左边的变成a 33 n++;//每有一个重复的,n++ 34 } 35 } 36 } 37 cout << endl; 38 for (i = 0; i < size;i++) 39 { 40 cout << p[i]; 41 } 42 cout << endl; 43 for (i = 0; i < size; i++) 44 { 45 for (j = 0; j < size; j++) 46 { 47 if (p[i] < p[j] && i < j) 48 { 49 count = p[i]; 50 p[i] = p[j]; 51 p[j] = count;//数字大的排前面 52 } 53 } 54 } 55 cout << n << endl; 56 for (i = 0; i < size; i++) 57 { 58 cout << p[i]; 59 } 60 cout << endl; 61 for (i = 0; i < size; i++) 62 { 63 if (i >= n)//输出除了a之外的数字 64 { 65 cout << p[i]; 66 result += (int(p[i])-48) * int(pow(10, size - i - 1));//转换成正整数 67 } 68 } 69 cout << endl << result << endl; 70 return 0; 71 }
结果:
其中输入位数这一步可用string 与 char 的strcpy 省去。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++ rand函数 2020-06-10
- C++ 友元函数 2020-06-10
- C++ 运算符重载 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash