1 条题解

  • 0
    @ 2023-3-13 11:07:17

    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

    信息

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