帮我康康哪错了
  • 板块灌水区
  • 楼主nini0913
  • 当前回复26
  • 已保存回复27
  • 发布时间2024/3/3 11:48
  • 上次更新2024/3/3 14:31:25
查看原帖
帮我康康哪错了
1062571
nini0913楼主2024/3/3 11:48
#include<iostream>
using namespace std;
unsigned long long dfs(unsigned long long x,unsigned long long y){
	if(x==0) return y;
	if(y==0) return x;
	unsigned long long i,j;
	for(i=0;0==(x&1);i++) x>>=1;
	for(j=0;0==(y&1);j++) y>>=1;
	if(i>j) i=j;
	while(1){
		if(x<y) x^=y,y^=x,x^=y;
		if(0==(x-=y)) return y>>i;
		while(0==(x&1)) x/=2;
	}
}
int main(){
	unsigned long long i,j;
	cin>>i>>j;
	cout<<dfs(i,j)<<endl;
	return 0;
}
2024/3/3 11:48
加载中...