十进制转二进制操作 操作完再变回十进制
2026-08-18 16:48:15
发布于:广东
14阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int main(){
long long n,s;cin>>n>>s;
string a;cin>>a;
string bin = "";
while(s){
bin=char((s%2) +'0')+bin;
s/=2;
}
//上面是将s转换二进制变成bin
for(int i=0;i<=a.size()-1;i++){
if(a[i]=='U'){
if(bin.size()>1) bin.pop_back();// 除于2在二进制中就是右移一位 也就是去掉最后一位
}else if(a[i]=='L')
bin+="0"; // 乘2在二进制中就是左移一位,也就是末尾+0
else if(a[i]=='R'){
bin+="1";// 乘2+1在二进制中就是左移一位,也就是末尾+1
}
}
//操作完后再把bin从二进制变回十进制
int j=1;
s=0;
for(int i=bin.size()-1;i>=0;i--){
if(bin[i]=='1'){
s+=j;
}
j*=2;
}
cout<<s;
return 0;
}
这里空空如也


有帮助,赞一个