1 solutions

  • 0
    @ 2025-3-3 16:33:58

    C :

    #include <stdio.h>
    int main(){
    	int n,i = 2;
    	scanf("%d",&n);
    	while(i < n){
    		i *= 2;
    	}
    	if(i - n < n - i / 2)
    		printf("%d",i);
    	else
    		printf("%d",i/2);
    	
    }
    

    C++ :

    #include<iostream>
    using namespace std;
    int main(){ 
       int n,i;
       cin>>n;
       i = 2;
       while(i < n){ 
         i = i * 2;
       }
       if(i - n < n - i / 2){ 
          cout<<i<<endl;
       }else{ 
          cout<<i / 2 <<endl;
       }
        
       return 0;
    }
    

    Python :

    a=int(input())
    b=[]
    c=1
    for i in range(1,33):
        b.append(c)
        c=c*2
    for i in range(0,32):
        if(abs(b[i]-a)>=abs(b[i+1]-a) and abs(b[i+1]-a)<=abs(b[i+2]-a)):
            print(b[i+1])
            break
    
    • 1

    Information

    ID
    10812
    Time
    1000ms
    Memory
    16MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By