SY_XLR 2021-09-30 22:58 采纳率: 100%
浏览 85
已结题

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

Description
描述
给你一个整数集合A(无重复元素),如果x,y都属于A,且y=xx,那么组成一个数对,请找出这个集合中满足条件的数对的个数。比如说集合A={2,3,4},则只有4=22,则答案为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 i,j,k,s,n,A[1001],x,y;
    while(scanf("%d",&n))
    {
        s = 0;
        if(n == 0)
        {
            break;
        }
        for(i = 0;i < n;i++)
        {
            scanf("%d",&A[i]);
            if(A[i]==1)
            {
                s-=1;
            }
        }
        for(j = 0;j < i;j++)
        {
            x = A[j];

            for(k = 0;k < i;k++)
            {
                 y = A[k];
                 if(y == x * x)
               {
                 s++;
               }
            }
        }
        printf("%d\n",s);
    }
    return 0;
}

结果为Wrong Answer,哪里错了呢?

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-10-01 00:42
    关注

    集合的元素,所有的元素为非负整数,且<=100,000,000, x*x的平方数超int范围了, 所以A[1001] ,x,y;类型应改为:long long int A[1001],x,y;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月9日
  • 已采纳回答 10月1日
  • 创建了问题 9月30日

悬赏问题

  • ¥15 r包runway详细安装教程
  • ¥15 Html中读取Json文件中数据并制作表格
  • ¥15 谁有RH342练习环境
  • ¥15 STM32F407 DMA中断问题
  • ¥15 uniapp连接阿里云无法发布消息和订阅
  • ¥25 麦当劳点餐系统代码纠错
  • ¥15 轮班监督委员会问题。
  • ¥20 关于变压器的具体案例分析
  • ¥15 生成的QRCode圖片加上下載按鈕
  • ¥15 板材切割优化算法,数学建模,python,lingo