题意:输入一个n然后,然后输入n个数,范围是-1e6到1e6,找出最大的一个不是完全平方数的数。输出。
题解:模拟 我先预处理出来1到1e3次方的完全平方数,然后一次从输入的n个数一次去在a数组里面找,有的话,就是完全平方数,没有的就不是,最后取个最大值的。昨晚做的时候,负数没有完全平方数,我就continue了,ans初始化为0,结果错了都不知道在哪里。。。真的有时候大脑短路,真想给自己一掌。
#include<bits/stdc++.h>
using namespace std;
int a[1010],b[1010];
int main()
{
int n,ans=-1000000,flag;
for(int i=0; i<=1000; i++)
a[i]=i*i;
cin>>n;
for(int i=0; i<n; i++)
{
cin>>b[i];
flag=0;
for(int j=0; j<=1000; j++)
{
if(b[i]==a[j])
{
flag=1;
break;
}
}
if(!flag)
ans=max(ans,b[i]);
}
cout<<ans<<endl;
return 0;
}