2 条题解

  • 0
    @ 2024-1-2 15:02:34
    #include <bits/stdc++.h>
    using namespace std;
    int n;
    long long a[30];
    int main()
    {
    	cin>>n;
    	if(n%2==1)
        {
    		cout<<"-1";
    		return 0;
    	}
    	a[1]=1;
    	for(int i=2;i<=26;i++)
        {
    		a[i]=a[i-1]*2;
    	}
    	for(int i=26;i>=2;i--)
        {
    		if(n>=a[i])
            {
    			n-=a[i];
    			cout<<a[i]<<' ';
    		}
    		if(n==0) return 0;
    	}
    	return 0;
    }
    
    • 0
      @ 2023-7-30 16:12:50

      水题

      #include<bits/stdc++.h>
      
      using namespace std;
      
      int n[10000];
      
      long long pot(int a){
          long long p=1;
          for(int i=1; i<=a; i++){
              p=p*2;
          }
          return p;
      }
      
      int main()
      {
      
          long long a;
          cin >>a;
          int k=1;
          if(a%2==1){cout<<"-1";}
          else{
              for(int i=1; i>0; i++){
                  n[i]=a%2;
                  a=a/2;
                  k++;
                  if(a<2){
                      n[i+1]=a;
                      break;
                  }
              }
              for(int i=k; i>=1; i--){
                  long long o=0;
                  if(n[i]!=0){
                      o=pot(i-1);
                      cout<<o<<" ";
                  }
              }
          }
      
      	return 0;
      }
      
      • 1

      信息

      ID
      767
      时间
      1000ms
      内存
      256MiB
      难度
      7
      标签
      递交数
      200
      已通过
      46
      上传者