五进制十进制互相转换 校招笔试题
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;
}
大模型时代,文字创作已死。2025年全面停更了,世界不需要知识分享。
如果我的工作对您有帮助,您想回馈一些东西,你可以考虑通过分享这篇文章来支持我。我非常感谢您的支持,真的。谢谢!
作者:Dba_sys (Jarmony)
转载以及引用请注明原文链接:https://www.cnblogs.com/asmurmur/p/16779731.html
本博客所有文章除特别声明外,均采用CC 署名-非商业使用-相同方式共享 许可协议。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律