红题70分,求调,感谢各位大佬

P7071 [CSP-J2020] 优秀的拆分

**有可能**是 在你的$x$减去$ppp(x)$后$x$过小导致for循环条件为false 比如说 $x$=$30$ $i$=$0$ $x$=$14$ $i$=$1$ $x$=$6$ $i$=$2$ $x$=$2$ $i$=$3$ 这个时候$i$就大于$x$导致输出不了$2$ (表达可能有些不清晰但希望有帮助qwq) @[Collapse_](/user/1188960)
by Just_int_mian @ 2023-11-05 23:00:36


@[Collapse_](/user/1188960) 改完后的代码: ```cpp #include <bits/stdc++.h> #define ll long long using namespace std; ll ppp(ll n){ for(ll i=0;i<=n;i++){ if(pow(2,i)>n){ return pow(2,i-1); break; }else if(pow(2,i)==n){ return pow(2,i); break; } } } int main(){ ll x; cin>>x; if(x%2!=0) cout<<-1; else{ for(ll i=0;;i++){ cout<<ppp(x)<<" "; x-=ppp(x); if(x==0) break; } } return 0; } ```
by ethanzyz @ 2023-11-05 23:04:33


|