×
通过社交网站直接登录
×
条@我的评论,查看@我
条新私信,查看私信
条新评论,查看评论
位新粉丝 查看粉丝

来装个x(光速逃)

2019-08-08 23:27:57

#include<iostream>

#include<stdio.h>

#include<stdlib.h>

#include<algorithm>

#include<math.h>

using namespace std;

char s1[45],s2[45],ans[45];

long long task[41],pr=0,tabq=0,staco=1;

void mize()

{

for(int i=0;i<=40;i++) task[i]=0;

for(int i=0;i<=44;i++) {s1[i]=0;s2[i]=0;ans[i]=0;}

}

void pre(int m,int n)

{

int a=abs(m);

int b=abs(n);

for(int i=40;i>=1;i--)

{

if(a%2==1) {s1[i]=1;a/=2;}

else a/=2;

}

for(int j=40;j>=1;j--)

{

if(b%2==1) {s2[j]=1;b/=2;}

else b/=2;

}

}

void sub()

{

for(int i=40;i>=1;i--)

{

if(task[i]==0){

if(s1[i]==1&&s2[i]==1) {task[i-1]=1;ans[i]=0;}

if((s1[i]==1&&s2[i]==0)||(s1[i]==0&&s2[i]==1)) ans[i]=1;

if(s1[i]==0&&s2[i]==0) ans[i]=0;}

if(task[i]==1){

if(s1[i]==1&&s2[i]==1) {task[i-1]=1;ans[i]=1;}

if((s1[i]==1&&s2[i]==0)||(s1[i]==0&&s2[i]==1)) {task[i-1]=1;ans[i]=0;}

if(s1[i]==0&&s2[i]==0) ans[i]=1;}

}

if(task[0]==1) tabq=1;

}

void miu()

{

for(int i=40;i>=1;i--)

{

if(task[i]==0){

if(s1[i]==s2[i]) ans[i]=0;

if(s1[i]==1&&s2[i]==0) ans[i]=1;

if(s1[i]==0&&s2[i]==1) {task[i-1]=-1;ans[i]=1;}

}

if(task[i]==-1)

{

if(s1[i]==s2[i]) {ans[i]=1;task[i-1]=1;}

if(s1[i]==1&&s2[i]==0) ans[i]=0;

if(s1[i]==0&&s2[i]==1) {task[i-1]=-1;ans[i]=0;}

}

}

if(task[0]==1) tabq=-1;

}

void pri()

{

for(int i=1;i<=40;i++)

{

if(ans[i]==1) pr+=pow(2,40-i);

}

if(tabq==1) pr+=pow(2,40);

if(tabq==-1) pr*=-1;

}

void work(int a,int b)

{

if((a>0)&&(b>0)) sub();

if((a>0)&&(b<0)) miu();

if((a<0)&&(b>0)) {staco=-1;miu();}

if((a<0)&&(b<0)) {staco=-1;sub();}

}

int main()

{

mize();

int r,l;

cin>>r>>l;

pre(r,l);

work(r,l);

pri();

cout<<pr;

return 0;

}


没错这是用来算两数之和的(光速逃)

标签: 光速

加入小组 发表评论

登录33IQ,提升智力水平,让你越玩越聪明!