1 条题解
-
1
这题考察了二进制的知识点
首先考虑极其特殊的情况:
- 时,什么操作都不用做,直接输出
- 在 不相等的情况下 ,那么无论怎么操作, 都不可能发生任何变化,所以输出
在此之外的情况,我们每次都只选择 ,要操作的次数就是
#include<bits/stdc++.h> using namespace std; long long a=0,b=0,out=1; int main(){ string x,y; cin>>x; cin>>y; if(x==y){ cout<<0; return 0; } if(x=="0"){ cout<<-1; return 0; } for(int i=x.length()-1;i>=0;i--){ a+=int(x[i]-'0')*out; out*=2; } out=1; for(int i=y.length()-1;i>=0;i--){ b+=int(y[i]-'0')*out; out*=2; } cout<<abs(a-b); return 0; }
- 1
信息
- ID
- 495
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 51
- 已通过
- 17
- 上传者