2 条题解

  • 0
    @ 2025-7-22 15:03:27
    #include <bits/stdc++.h>
    using namespace std;
    #define inf 200005
    int main(){
    	// 统一在main下面的第一行写
    	// freopen("sort.in", "r",stdin);
    	// freopen("sort".out", "w", stdout);
    	// 二进制,位运算 & | ^ (异性相吸,相同为0,相异为1) ~  >>  <<;
    	int n;
    	cin >> n;
    	// 如果n是奇数,直接输出-1
    	if (n & 1) {
    		cout << - 1;
    		return 0;
    	}
    	// (1 << i) = 2 ^ i
    	for (int i = 24; i > 0; i--) {
    		int m = (1 << i);
    		if ( n >= m ) {
    			// 包含一个 2 ^ i
    			cout << m << " ";
    			// n要减去  2 ^ i
    			n -= m;
    			// 如果已经为0,不需要拆分了
    			if (n == 0) break;
    		}
    	}
    	// 统一在return上一行书写
    	// fclose(stdin);
    	// fclose(stdout);
        return 0;
    }
    /**
     **/
    
    • 0
      @ 2025-6-8 9:18:15
      #include<bits/stdc++.h>
      using namespace std;
      int main()
      {
          int n;cin>>n;
          if(n%2==1)
          {
              cout<<-1;
              return 0;
          }
          else
          {
              for(int i=(1<<30);i>=1;i>>=1)  
                  {
                      if(n>=i)
                      {
                          cout<<i<<" ";
                          n-=i;
                      }
                  }
          }
          return 0;
      }
      • 1

      信息

      ID
      11080
      时间
      1000ms
      内存
      256MiB
      难度
      1
      标签
      递交数
      90
      已通过
      37
      上传者