\`\`\`cpp
Code
\`\`\`
这样插入代码谢谢
by panda_2134 @ 2018-04-25 18:48:19
整理一下:
```cpp
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
long long n,k,i,s;
scanf("%lld%lld",&n,&k);
for(i=0;i<k-1;i++){
for(s=1;s<n/2;s=2); n-=s;
}
for(s=1;;s=2){
if(s>=n){
printf("%lld",s-n);break;
}
}
return 0;
}
```
by Victory_Defeat @ 2018-04-25 19:58:35
```cpp
Code
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
long long n,k,i,s;
scanf("%lld%lld",&n,&k);
for(i=0;i<k-1;i++)
{
for(s=1;s<n/2;s*=2);
n-=s;if(n<=1){printf("0");return 0;}
}
for(s=1;;s*=2)
{
if(s>=n)
{
printf("%lld",s-n);
break;
}
}
return 0;
}```
只有第三个点wa了
by niquanjiazhizhang @ 2018-04-26 18:23:18
```cpp
Code
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
long long s;
int k,i,n;
scanf("%d%d",&n,&k);
for(s=1;s<n;s*=2);
for(i=0;i<k-1;i++)
{
for(;s>n;s/=2);
n-=s;if(n<=1){printf("0");return 0;}
}
for(s=1;;s*=2)
{
if(s>=n)
{
printf("%lld",s-n);
break;
}
}
return 0;
}
```
AC了,请问为啥必须要先乘后除,会在什么情况下出错
by niquanjiazhizhang @ 2018-04-29 08:56:19