对数的疑惑
查看原帖
对数的疑惑
427154
unsigned_short_int楼主2022/5/28 21:05

rt,对数做法被卡精度(#10)卡到自闭,加上特判才能过,有什么方法解决吗?
代码:

#include<iostream>
#include<cmath>
using namespace std;

long long l,r,w;

int main()
{
	cin>>l>>r>>w;
	if(w==1)
	{
		if(l==1)
			cout<<1;
		else
			cout<<-1;
		return 0;
	}
	long long lb=(long long)(log2(l)/log2(w)),rb=(long long)(log2(r)/log2(w));
	if((long long)pow(w,lb)<l)
		lb++;
	if((long long)pow(w,rb)>r)
		rb--;
	if(lb>rb)
		cout<<-1;
	else
	{
		long long p=(long long)pow(w,lb);
		for(int i=lb;i<=rb;i++,p*=w)
			cout<<p<<" ";
	}
	return 0;
}
//1 576460752303423487 2
2022/5/28 21:05
加载中...