1 条题解

  • 0
    @ 2025-4-7 21:41:57

    C :

    #include<stdio.h>
    
    int main()
    {
    	int n,i,j,t,k,a[10];
    	while(scanf("%d",&n)!=EOF,n)
    	{
    		i=0;
    		while(n)
    		{
    			a[i]=n%2;
    			n/=2;
    			i++;
    		}
    		t=0;
    		for(j=0;j<i;j++)
    		{
    			if(a[j]==0)
    				t++;
    			else
    				break;
    		}
    		k=1;
    		for(j=0;j<t;j++)
    			k*=2;
    		printf("%d\n",k);
    	}
    	return 0;
    }
    

    C++ :

    #include<stdio.h>
    
    int main()
    {
    	int n,i,j,t,k,a[10];
    	while(scanf("%d",&n)!=EOF,n)
    	{
    		i=0;
    		while(n)
    		{
    			a[i]=n%2;
    			n/=2;
    			i++;
    		}
    		t=0;
    		for(j=0;j<i;j++)
    		{
    			if(a[j]==0)
    				t++;
    			else
    				break;
    		}
    		k=1;
    		for(j=0;j<t;j++)
    			k*=2;
    		printf("%d\n",k);
    	}
    	return 0;
    }
    

    Pascal :

    var a,s,t:longint;
    
    begin
      readln(a); t:=64;
      while a<>0 do
        begin
          s:=a mod t;
          while s<>0 do
            begin
              a:=a mod t;
              t:=t div 2;
              s:=a mod t;
            end;
           writeln(a);
           readln(a);
           t:=64;
        end;
    end.
    
    

    Java :

    import java.util.*;
    public class Main{
        public static void main(String[] args){
            Scanner in=new Scanner(System.in);
            while(in.hasNextInt()){
            int n=in.nextInt();
            if(n==0) break;
            String cc="";
            while(n!=0) {
                      int yushu = n % 2;
                      cc=(char)(yushu+'0') +cc;
                      n = n/2;
                    }  
             int a=cc.length()-1;
             int b=0,sum=0;
              while(cc.charAt(a)=='0'){
                 b++;a--;
                }
               sum+=Math.pow(2,b);
                System.out.println(sum);
            }
        }
    }
    

    Python :

    import sys
      
    def check(N):
        n = len(bin(N))-bin(N).rfind('1')-1
        return int(('1'+'0'*n),2)
     
    for line in sys.stdin:
        N = int(line.split()[0])
        if N != 0:
           print check(N)
    
    • 1

    信息

    ID
    2083
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者