没人递归吗
查看原帖
没人递归吗
1381257
zhengyi0402楼主2024/11/1 20:11

递归,一定超时吗?

不!\Huge 不!

递归也可以二分啊!

把每一次的while都看成一次递归就行了!

我的代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
int ans = -1;
void erfen(int l,int r){
	if(l>r){
		cout<<ans<<endl;
		exit(0);
	}
	int mid = (l+r)/2;
	if(mid*mid*mid<=n){
		ans=max(ans,mid);
		erfen(mid+1,r);
	}
	else{
		erfen(l,mid-1);
	}
}
signed main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	
	cin>>n;
	erfen(1,100000);
	return 0;
	//十年OI一场空,define int 见祖宗。
	//十年OI一场空,不开long long见祖宗。
}

2024/11/1 20:11
加载中...