关于数据溢出
查看原帖
关于数据溢出
81708
lion0514楼主2020/8/23 15:01

第一次做这题时,得了85分,Wa了#1和#7. 翻翻讨论区,是爆longlong了。于是修改了一下就过了

做完后想:我第一次也有判断啊,为什么我第一次就错了呢?

#include<bits/stdc++.h>
using namespace std;
int main()
{
	long long l,r,w;cin>>l>>r>>w;
	if(w==1){
		if(l==1)
		cout<<1;
		else
		cout<<-1;
		return 0;
	}
	long long s=1;
	bool o=0;
	while(1){
		if(s>=l){
			if(s<=r){
				cout<<s<<' ';
				o=1;
			}else
				break;
		}
		s*=w;
		if(s<0)break;//如果溢出了就会变成负数,break
	}
	if(!o)	cout<<-1;
}

难道溢出了不一定会变成负数?请求大佬解释一下

2020/8/23 15:01
加载中...