听说灌水区大佬多
  • 板块灌水区
  • 楼主__Rickysun__
  • 当前回复25
  • 已保存回复25
  • 发布时间2024/2/25 13:58
  • 上次更新2024/2/25 16:33:24
查看原帖
听说灌水区大佬多
824205
__Rickysun__楼主2024/2/25 13:58

最接近二的幂优化求助:题目

#include <bits/stdc++.h>
using namespace std;
int main() {
	int n,mi=INT_MAX,k=1;
	cin>>n;
	for(int i=1;1<<i<=2e9;i++){
		if((1<<(i-1))>n) break;
		if((abs((1<<i)-n))<mi){
			mi=abs((1<<i)-n);
			k=i;
		}
	}
	cout<<(1<<k);
}

这是我的第一份代码,第9个测试点超时了

#include <bits/stdc++.h>
using namespace std;
int main() {
	int n,k=1,ans=1;
	double mi=1.0*INT_MAX;
	cin>>n;
	while(n){
		n/=2;
		if(abs(n-1)<mi){
			ans=k;
			mi=abs(n-1);
		}
		k++;
	}
	cout<<(1<<ans);
}

后来我改变思路,和1比大小,但是在第6个测试点 WAWA 了。求 dalaodalao 给思路 // 优化

2024/2/25 13:58
加载中...