顺丰笔试第二题C++

心好累,检查了好久然后就因为判断==写成=,ac的题变成0通过

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;

#include<iostream>
#include<string>
using namespace std;

int MtoN(string &str, int m, int n)
{
int hashNum[256];   //通过字符找到数字
for (int i = 0; i <= 9; i++)
hashNum['0' + i] = i;
for (int i = 10; i <= 35; i++)
hashNum['A' + i] = i;

int hashChar[256]; //通过数字找到字符
for (int i = 0; i <= 9; i++)
hashChar[i] = '0' + i;
for (int i = 10; i <= 35; i++)
hashChar[i] = 'A' + i;

int realValue = 0;    //十进制数
int maxCh = hashChar[m];      //m进制每位能表示的最大值对应的字符
for (int i = 0; i < str.length(); i++)    //输入字符串str转换为十进制
{
if (str[i] >= maxCh)
return 60;
realValue = realValue*m + hashNum[str[i]];
}
return realValue;
}
int main()
{
string str;
string s1="";
string s2="";
int flag = 1;
vector<int> v;
cin >> str;
for (int i = 0; i < str.size(); i++) {
if (str[i] == ':') {
flag = 0;
continue;
}
if (flag) {
s1 += str[i];
}
if (!flag) {
s2 += str[i];
}
}
for (int i = 1; i <= 16; i++) {
int a, b;
a = MtoN(s1, i, 10);
b = MtoN(s2, i, 10);
if (a < 24 && a >= 0 && b < 60 && b >= 0) {
v.push_back(i);
}
}
for (int i = 0; i <v.size(); i++) {
cout << v[i]<<'\0';
}
system("pause");
}


#笔试题目##顺丰科技#
全部评论
我过了64,不知道哪出了问题
点赞 回复
分享
发布于 2019-09-10 17:43
老哥,第一题有做出来了不
点赞 回复
分享
发布于 2019-09-10 16:24
滴滴
校招火热招聘中
官网直投
通过率0啊
点赞 回复
分享
发布于 2019-09-10 16:32
不行啊
点赞 回复
分享
发布于 2019-09-10 16:33
不行啊
点赞 回复
分享
发布于 2019-09-10 16:37
ac了45
点赞 回复
分享
发布于 2019-09-10 16:56
有的情况进制,可以无限+1,博主限制进制到16,能过吗
点赞 回复
分享
发布于 2019-09-10 16:57
这题有人ac嘛,我觉得自己考虑很周全,但还是没ac。。
点赞 回复
分享
发布于 2019-09-10 22:22

相关推荐

1 8 评论
分享
牛客网
牛客企业服务