首页 > 代码库 > zju 1383 Binary Numbers

zju 1383 Binary Numbers

 

 

 

 

#include <iostream>using namespace std;int a[1000];int  f(int n){ int k=0; while(n) {  a[k++]=n%2;  n/=2; } return k;}int main(int argc, char *argv[]){ int n,m,k,q; while(cin>>q) {  while(q--)  {    cin>>n;    m=f(n);          for(int i =0,k=0;i<m;i++)          if(a[i]==1) { k++ ; if(k==1)  cout<<i; else cout<<" "<<i;}          cout<<endl;  }     }     return 0;}
View Code

 

 

#include <iostream>
using namespace std;
int a[1000];
int  f(int n)
{
 int k=0;
 while(n)
 {
  a[k++]=n%2;
  n/=2;
 }
 return k;
}
int main(int argc, char *argv[])
{
 int n,m,k,q;
 while(cin>>q)
 {
  while(q--)
  {
    cin>>n;
    m=f(n);
          for(int i =0,k=0;i<m;i++)
          if(a[i]==1) { k++ ; if(k==1)  cout<<i; else cout<<" "<<i;}
          cout<<endl;
  }
    
 }

 
 return 0;
}


 

 

 

#include<vector>#include <iostream>using namespace std;int main(int argc, char *argv[]){    vector<int>v;    int n,a ;    cin>> n ;    for (int i=0 ;i<n ;i++)    {        cin>>a ;        v.clear();        for (int j=a ; j ; j=j/2)        {            v.push_back(j%2 ? 1: 0); //添加到容器中0,1         }        int p=0 ; // 第一次输出        for (int k=0 ; k<v.size();k++)        {            if (v[k]==1)            {                if (p==0) cout<<k;                  else  cout<<" "<<k;                p=1;            }        }        cout<<endl;    }    return 0;}
View Code
#include<vector>#include <iostream>using namespace std;int main(int argc, char *argv[]){    vector<int>v;    int n,a ;    cin>> n ;    for (int i=0 ;i<n ;i++)    {        cin>>a ;        v.clear();        for (int j=a ; j ; j=j/2)        {            v.push_back(j%2 ? 1: 0); //添加到容器中0,1         }        int p=0 ; // 第一次输出        for (int k=0 ; k<v.size();k++)        {            if (v[k]==1)            {                if (p==0) cout<<k;                  else  cout<<" "<<k;                p=1;            }        }        cout<<endl;    }    return 0;}