求一道题, C++

2025-04-07 00:28:26
推荐回答(1个)
回答1:

#include 
#include 
int main() 
{int i,j,n,a[40]={0}; 
 scanf("%d",&n);
 for(i=0;n;n/=-2)a[i++]=n%(-2);
 for(j=0;j   if(a[j]<0){a[j]+=2;a[j+1]++;}
     else if(a[j]>1){a[j]-=2;a[j+1]--;};
 while(a[j]<0){a[j]+=2;a[++j]++;};
 if(a[j]==0)j--;
 for(i=j;i>=0;i--)printf("%d",a[i]);
 printf("\n"); 
 return 0;
}