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;
} 展开
描述
给你一个整数集合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;
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询