最容易理解的代码——只有2个AC

P7071 [CSP-J2020] 优秀的拆分

$pow(2,i)$事浮点数,大了会有精度误差。
by NusGhy @ 2020-11-08 16:58:52


**int a[100000];** 爆了,a[30]就够了
by _OJF_ @ 2020-11-08 16:59:59


输入数据:`4` 正确输出:`4` 这个代码的输出:`-1`
by 10circle @ 2020-11-08 17:00:06


而且$n≤10^7$,$2^n$是什么鬼
by NusGhy @ 2020-11-08 17:00:19


@[AT1198_100](/user/311230) 我思路和您差不多,~~可以参考一下~~ ``` #include<bits/stdc++.h> using namespace std; long long n; int wei , a[300]; int main() { cin >> n; if(n % 2 != 0) { cout << -1; fclose(stdin); fclose(stdout); return 0; } while(n) { a[wei++] = n % 2; n /= 2; } for(int i = wei; i >= 0 ; i --) { if(a[i] == 1) { long long flag = pow(2 , i); cout << flag << " "; } else { continue; } } return 0; } ```
by ysomething @ 2020-11-08 17:01:06


@[CuCsCsPr_Suhy](/user/225499) 谢了
by AT1198_100 @ 2020-11-08 17:01:35


@[chengzhiyu蒻蒟](/user/241542) thanks
by AT1198_100 @ 2020-11-08 17:02:10


这不是打表就行的嘛
by lsy0908 @ 2020-11-08 17:28:42


~~20分几行代码解决~~......
by 18746326975zhou @ 2020-11-08 19:52:47


每次直接输出 $2^{\lfloor log_2n \rfloor}$
by DarkLuthics @ 2020-11-08 19:55:44


|