题解:P10691 [SNCPC2024] chmod
wangbinfeng · · 题解
本题是比赛的签到题,线下赛共计
给出一个三位的十进制数表示一个文件的权限。由于三位十进制数分别代表三种用户的权限,不难想到把他拆成三位分别处理。
对于每一位的十进制数,将其转换为二进制,如果对应位是 r,w,x 即可。
具体地,拆分十进制数的代码如下:第一位:n/100;第二位:n/10%10;第三位:n%10。
对于每一位十进制数:第一位:x/4;第二位:x/2%2;第三位:x%2。
代码:
#include<bits/stdc++.h>
using namespace std;
int t,ans,n;
inline void get(const int x){
if(x/4==1)cout<<"r";else cout<<"-";
if(x/2%2==1)cout<<"w";else cout<<"-";
if(x%2==1)cout<<"x";else cout<<"-";
}
signed main(){
ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);
for(cin>>t;t--;ans=0){
cin>>n;
get(n/100),get(n/10%10),get(n%10);
cout<<"\n";
}
}