3 条题解

  • 1
    @ 2025-10-6 17:06:42

    短除法

    #include<stdio.h>
    int main()
    {
        int n;
        while(scanf("%d",&n)!=EOF){
            if(n==0){
                printf("0\n");
                continue;
            }int a[1001],num=0;
            while(n>0){
                a[num]=n%2;
                n=n/2;
                num++;
            }for(int i=num-1;i>=0;i--){
                printf("%d",a[i]);
            }printf("\n");
        }
        return 0;
    }
    
    • 0
      @ 2025-11-21 20:27:37

      易懂的笨方法👀️

      #include <stdio.h>
      int main(){
          int n;
          while(scanf("%d",&n)!=EOF){
              int a[1000]={0},i=0;
              while(n>=0){
                  if(n%2==1){
                      a[i]=1;
                      n/=2;
                      i++;
                  }
                  else{
                      a[i]=0;
                      n/=2;
                      i++;
                  }
                  if(n==0)break;
              }i--;
               for(;i>=0;i--){
                      printf("%d",a[i]);
                  }
                  printf("\n");
          }
      }
      
      • 0
        @ 2023-12-25 11:39:33
        #include <iostream>
        
        using namespace std;
        
        int main(){
        std::ios::sync_with_stdio(false);
        cin.tie(0);
        cout.tie(0);	
        	int n;
        	while(cin >> n){
        	int p=0;
        	if(n==0){
        		cout << "0" << '\n';
        		continue;
        	}
        	for(int i=31;i>=0;i--){
        		if((n>>i&1)){           //去除无效的0 
        			p=1;
        		}
        		if(p==1){
        		cout << (n>>i&1);       //&运算输出 1&1=1 0&1=0 
        	}
        	}
        		cout << '\n';
        }
        	return 0;
        }
        
        • 1

        信息

        ID
        195
        时间
        3000ms
        内存
        128MiB
        难度
        5
        标签
        (无)
        递交数
        629
        已通过
        236
        上传者