![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
csp
a_streaker
I am streaker!
I am coding !
(*^▽^*)
展开
-
优秀的拆分2
极简做法 位移!!! #include<cstdio> #include<iostream> using namespace std; int main() { int n; cin>>n; if(n%2){ cout<<"-1"<<" "; }else{ //整数级运算 for(int i=30;i>=0;i--){//从大往小 if((1<<i) & n){//判断第i位是不是1(最右边原创 2020-12-19 18:22:06 · 119 阅读 · 1 评论 -
优秀的拆分
题目 一般来说,一个正整数可以拆分成若干个正整数的和。例如, 1 = 1, 10 =1 + 2 + 3 + 4 等。 对于正整数 ???? 的一种特定拆分,我们称它为“优秀的”,当且仅当在这种拆分下, ???? 被分解为了若干个不同的 2 的正整数次幂。注意, 一个数 ???? 能被表示成 2 的正整数次幂,当且仅当 ???? 能通过正整数个 2 相乘在一起得到。 例如, 10 = 8 + 2 = 23 + 21 是一个优秀的拆分。但是, 7 = 4 + 2 + 1 =22 + 21 + 20 就不是一个优原创 2020-11-18 18:59:16 · 4322 阅读 · 2 评论