P7071 [CSP-J2020] 优秀的拆分 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
解题思路(1)二进制
1.首先从题目可知奇数是只有2的0次幂,是不符合题意的,所以,只有偶数才存在优秀的拆分
那如果是奇数,直接输出-1结束程序即可
3.如果是偶数的话,那么我们将他转化为二进制,如果此时的余数是1的话,代表这个数位是2的n次方,将这个数存入数组
4.最后倒序输出
代码如下:
P7071 [CSP-J2020] 优秀的拆分 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<bits/stdc++.h>
using namespace std;
int a[1000000];//10的7次方
int main()
{
int n,num=0,sum=0;//n为要判断的数,num为存数组的位置,sum为2的次方数
cin>>n;//输入n
if(n%2==1)//判断是不是奇数,如果是