0 2022.9.29 深信服笔试题目 编程题一
五进制十进制互相转换
其中五进制用 oyeas
分别代表 01234
第一个输入多少个待转换的字符串,接着就是输入,判断是十进制数字则转化为五进制,判断是五进制字符串则转化为十进制数字。
1 例子:
输入:
4
123456
yeseeayy
987
110
输出:
yeseeayy
123456
yesee
seo
2 实现
#include <iostream>
#include <string>
using namespace std;
int str_to_num(string str){
string stand = "oyeas";
int val = 1;
int ten = 0;
for(int i=str.size()-1; i>=0; i--){
ten += stand.find(str[i]) * val;
val *= 5;
}
return ten;
}
string num_to_str(int ten){
string stand = "oyeas";
string str="";
int index;
while(ten){
index = ten % 5;
str += stand[index];
ten /= 5;
}
string reverse_str ="";
for(int i=str.size()-1; i>=0; i--){
reverse_str += str[i];
}
return reverse_str;
}
int main() {
int time;
cin>>time;
string stand = "oyeas";
while(time--){
string input;
cin>>input;
if(stand.find(input[0]) != string::npos){
// str_to_num
cout<<str_to_num(input)<<endl;
}else{
// num_to_str
cout<<num_to_str(stoi(input, 0, 10))<<endl;
}
}
return 0;
}
3 知识点
3.1 字符串子串查找
string.find(str) != string::npos
查找 string 内有无子串
3.2 将数字变字符串
`to_string(n)`` 将数字变字符串
3.3 字符串变数字
stoi(string, position, 10)
string 转 10 进制
#include <iostream>
#include<string>
using namespace std;
int main(int argc, char*argv[])
{
string s = "15.0";
int i = 0;
i = stoi(s, 0, 10);
cout<<i<<endl;
return 0;
}
标签:string,ten,int,stand,str,校招,十进制,进制
From: https://www.cnblogs.com/asmurmur/p/16779731.html