码迷,mamicode.com
首页 > 其他好文 > 详细

中兴笔试 数字的最小排列

时间:2017-08-26 02:45:15      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:clu   排列   约束   笔试   mat   begin   实例   space   整数   

题目:根据给定的"锁定密码"(一串数字),可以计算出"解锁秘钥",它是该数中数字的最小排列(数量上),且它不会从零开始.

输入:一串数字lockingKey,约束-100000<= lockingKey <= 100000

输出:返回一个表示解锁的整数

 

实例:

输入:

lockingKey = 706;

输出:

607

 

函数形式

  long findUnlock(long lock)

  {

  }

 

 参考程序:

 1 #include <iostream>
 2 #include <vector>
 3 #include <string>
 4 #include <algorithm>
 5 #include <cmath>
 6 using namespace std;
 7 
 8 long findUnlock(long lock)
 9 {
10     if (lock < 0)
11     {
12         lock = -lock;
13     }
14     string str;
15     str = to_string(lock);
16     vector<int> ivec;
17     int val;
18     for (int i = 0; i < str.size(); i++)
19     {
20         val = str[i] - 0;
21         ivec.push_back(val);
22     }
23     sort(ivec.begin(), ivec.end());
24     int j;
25     if (ivec[0] == 0)
26     {
27         for (int i = 0; i < ivec.size(); i++)
28         {
29             if (ivec[i] != 0)
30             {
31                 j = i;
32                 break;
33             }
34         }
35     }
36     swap(ivec[0], ivec[j]);
37     long s = 0;
38     for (int i = 0; i < ivec.size(); i++)
39     {
40         s += pow(10, ivec.size() - i - 1)*ivec[i];
41     }
42     return s;
43 }
44 
45 int main()
46 {
47     cout << findUnlock(-83047) << endl;
48     return 0;
49 }

 

 

中兴笔试 数字的最小排列

标签:clu   排列   约束   笔试   mat   begin   实例   space   整数   

原文地址:http://www.cnblogs.com/Stephen-Qin/p/7429793.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!