为什么只有两个对的

P7071 [CSP-J2020] 优秀的拆分

@[牟零幻巧](/user/405302) 改成a[++rap]就能过了吧(没仔细看)
by w23c3c3 @ 2020-11-08 14:40:42


另外要从rap-1开始输出
by haooo @ 2020-11-08 14:44:55


###### 改好了但是还是只有两个对的 ```cpp #include <cstdio> using namespace std; int main() { int n; int ans[100] = {0}; int rap = 0; scanf("%d",&n); if (n % 2 == 1) { printf("-1"); return 0; } int num = n; bool flag = false; for (int i = 2; i <= n; i *= 2) { if (num - i > 0) { num -= i; ans[++rap] = i; flag = true; continue; } if (num - i == 0) { ans[++rap] = i; flag = true; break; } flag = false; } if (flag) { for (int i = rap; i > 0; i--) { printf("%d ",ans[i]); } } else { printf("-1"); } return 0; } ```
by 牟零幻巧 @ 2020-11-08 21:36:49


|