1 条题解

  • 0
    @ 2026-3-29 13:14:20
    #include<bits/stdc++.h>
    using namespace std;
    int b[1000005];
    int main(){
    	long long n;
    	cin>>n;
    	for(int i=1;i<=30;i++){
    		b[i]=pow(2,i);
    	}
    	int ans=INT_MIN;
    	if(n==1){
    		cout<<"1";
    		return 0;
    	}
    	for(int i=1;i<=30;i++){
    		if(b[i]<=n){
    		   ans=max(ans,b[i]);
    		}
    	}
    	cout<<ans;
    	return 0;
    }
    

    O(n)O(n) 位运算位运算

    证明:

    http://47.121.118.174/record/69b010c9fedc597656883d0b

    信息

    ID
    510
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    8
    已通过
    2
    上传者