简单题解
2026-06-26 19:05:24
发布于:广东
9阅读
0回复
0点赞
这次的题目仅仅考察进制,相对简单,以下是解题步骤:
1.首先先输入字符串,不用存储,一边输入,一边解题,减少内存消耗。
2.编写几个判断函数,分别是2进制,8进制,19进制,16进制。
3.最后调用函数,进行输出。
本题直接搞定,代码在下方:
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
bool is_2(string sz){
for(ll i = 0;i < sz.size();i++){
if(!(sz[i] >= '0' && sz[i] <= '1'))return 0;
}
return 1;
}
bool is_8(string sz){
for(ll i = 0;i < sz.size();i++){
if(!(sz[i] >= '0' && sz[i] <= '7'))return 0;
}
return 1;
}
bool is_10(string sz){
for(ll i = 0;i < sz.size();i++){
if(!(sz[i] >= '0' && sz[i] <= '9'))return 0;
}
return 1;
}
bool is_16(string sz){
for(ll i = 0;i < sz.size();i++){
if(!(sz[i] >= 'A' && sz[i] <= 'F') && !(sz[i] >= '0' && sz[i] <= '9'))return 0;
}
return 1;
}
int main()
{
ll n;
cin >> n;
for(ll i = 0;i < n;i++){
string ls;
cin >> ls;
cout << is_2(ls) << ' ' << is_8(ls) << ' ' << is_10(ls) << ' ' << is_16(ls) << ' ' << '\n';
}
return 0;
}
全部评论 1
#include<iostream> using namespace std; char c[5]{'1','1','1','1'}; string b[100005]; int main(){ int a; cin>>a; for(int i=0;i<a;i++){ cin>>b[i]; for(int j=0;j<b[i].size();j++){ if(b[i][j]>='A'&&b[i][j]<='F'){ c[0]='0';c[1]='0';c[2]='0';} else if(b[i][j]>='2'&&b[i][j]<='7'){ c[0]='0'; }else if(b[i][j]=='1'||b[i][j]=='0'){ c[0]='1';c[1]='1';c[2]='1';c[3]='1'; }else if(b[i][j]>='8'&&b[i][j]<='9'){ c[1]='0'; }else if(b[i][j]>='0'&&b[i][j]<='7'){ c[1]='1'; }else if(b[i][j]>='G'){ c[0]='0';c[1]='0';c[2]='0';c[3]='0'; }else{ continue; } } cout<<c[0]<<" "<<c[1]<<" "<<c[2]<<" "<<c[3]<<endl;} }1周前 来自 湖北
0











有帮助,赞一个