c语言平方数问题,运行正确,但是提交一直wrong anwser,求大佬帮忙看看哪里不对

Description描述给你一个整数集合A(无重复元素),如果x,y都属于A,且y=x*x,那么组成一个数对,请找出这个集合中满足条件的数对的个数。比如说集合A={2,... Description

描述

给你一个整数集合A(无重复元素),如果x,y都属于A,且y=x*x,那么组成一个数对,请找出这个集合中满足条件的数对的个数。比如说集合A={2,3,4},则只有4=2*2,则答案为1。

输入

每个样例占2行,第一行为一个非负整数n,n<=1000,为集合中元素的个数,如果n为0则输入结束。第二行为n个整数,为集合的元素,所有的元素为非负整数,且<=100,000,000,两个整数之间有一个空格隔开。

输出

每行输出一个样例的结果。

Sample Input

3
2 3 4
5
3 36 5 9 6
0

Sample Output

1
2

#include<stdio.h>
int main()
{
int n;
int i,j;
int a[1010],b[1010];
while (scanf("%d",&n))
{
if(n==0)
{
break;
}
int x =0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
b[i]=a[i]*a[i];
}
for(j=0;j<n;j++)
{
for(i=0;i<n;i++)
{
if(a[i]==b[j])
x++;
}
}
printf("%d\n",x);
}
return 0;
}
展开
 我来答
风若远去何人留
2017-11-28 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450106
专业C/C++软件开发

向TA提问 私信TA
展开全部
b[i]=a[i]*a[i];
a[i]范围是1~100,000,000
所以b[i]是可能会溢出的. 导致错误.
这里可以判断一下, 如果a[i]>10000 那么b[i]设置为-1
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式