为什么输入1时会输出5个0啊(恼)
查看原帖
为什么输入1时会输出5个0啊(恼)
418739
gongziwen楼主2022/11/26 21:39

rt。比赛后五分钟均在解决这个问题,结果还是没能解决qwq,于是……100(大概)->0

#include<bits/stdc++.h>
using namespace std;
int q;
int main()
{
	cin>>q;
	while(q--)
	{
		double k;
		cin>>k;
		k--;
		long long zq=(1+sqrt(8*k+1))/4;
		if(k==1) zq=0;
		long long djg=k-(2*zq*zq-zq)+1,gs=zq*4+1;
		if(k==1)
		{
			cout<<0;
			continue;
		}
		else if(k==2) cout<<0;
		else if(k==3) cout<<1;
		else if(k==4) cout<<0;
		else if(k==5) cout<<-1;
		else if(k==6) cout<<0;
		else
		{
			if(djg==1) cout<<0;
			if(djg>1&&djg<(gs-1)/4+1) cout<<djg-1;
			if(djg==(gs-1)/4+1) cout<<zq;
			if(djg>(gs-1)/4+1&&djg<(gs-1)/2+1) cout<<zq-(djg-((gs-1)/4+1));
			if(djg==(gs-1)/2+1) cout<<0;
			if(djg>(gs-1)/2+1&&djg<(gs-1)/4*3+1) cout<<-(djg-((gs-1)/2+1));
			if(djg==(gs-1)/4*3+1) cout<<-zq;
			if(djg>(gs-1)/4*3+1&&djg<gs) cout<<-zq+(djg-((gs-1)/4*3+1));
			if(djg==gs) cout<<0;
		}
		cout<<"\n";
	}
	return 0;
}
2022/11/26 21:39
加载中...