第二,三点wa,别的都AC了,求助

P1582 倒水

\`\`\`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


|