@[ycy1124](/user/1199534) 你的复杂度错了,过不了
by IceKylin @ 2024-02-20 10:01:13
@[IceKylin](/user/719767)
?谢谢大佬
by ycy1124 @ 2024-02-20 10:12:45
@[ycy1124](/user/1199534)
改了一遍后不知道还有救吗
```cpp
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,a;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a);
int j;
for(j=1;a>j*(j+1)/2&&a-j*(j+1)/2!=1;j++)
{
}
if(a-j*(j+1)/2==1)
{
printf("1\n");
}
else
{
printf("0\n");
}
}
return 0;
}
``````
by ycy1124 @ 2024-02-22 09:06:34
@[ycy1124](/user/1199534)
完了完了
```cpp
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,a;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a);
int j;
if(a<=10000)
for(j=1;a>j*(j+1)/2&&a-j*(j+1)/2!=1;j++);
else if(a<=20000)
for(j=140;a>j*(j+1)/2&&a-j*(j+1)/2!=1;j++);
else if(a<=50000)
for(j=199;a>j*(j+1)/2&&a-j*(j+1)/2!=1;j++);
else if(a<=100000)
for(j=313;a>j*(j+1)/2&&a-j*(j+1)/2!=1;j++);
else if(a<=200000)
for(j=446;a>j*(j+1)/2&&a-j*(j+1)/2!=1;j++);
else if(a<=500000)
for(j=630;a>j*(j+1)/2&&a-j*(j+1)/2!=1;j++);
else
for(j=999;a>j*(j+1)/2&&a-j*(j+1)/2!=1;j++);
if(a-j*(j+1)/2==1)
printf("1\n");
else
printf("0\n");
}
return 0;
}
``````
by ycy1124 @ 2024-02-22 09:23:30
AC代码:
```cpp
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;++i)
{
int x;//位置
scanf("%d",&x);
x--;
求关
if(int(sqrt(x*2))*int(sqrt(x*2)+1)==x*2) printf("1\n");//sqrt(n(n-1))位于n与n-1之间
else printf("0\n");
}
return 0;
}
``````
求关
by 2023hkm @ 2024-02-22 09:56:23
@[2023hkm](/user/1240717)
谢谢大佬给的思路,已关
by ycy1124 @ 2024-02-23 16:52:35