1 条题解

  • 0
    @ 2024-12-24 9:59:30

    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;
    }
    

    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);
            }
        }
    }
    
    • 1

    信息

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