勾股定理
  z797zFE4S4a9 2023年11月02日 63 0


题目描述

给N个数,判断这N个数中存在多少组勾股数(勾股数:存在三个数满足a*a + b*b = c*c)。

输入

第一行输入一个数T(1<=T<=50),表示有T组数据。

每组数据输入一个N(1<=N<=1000)。

接下来N个数ai(1<=ai<=10^9)。

输出

每组数据输出一行,表示有多少组勾股数。

示例输入

3 4 4 3 5 3 4 6 7 8 10 5 6 7 8 9 5

示例输出

2 1 0

#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
    int T,n,a[10010];
    scanf("%d",&T);
    int b[10010],i,j;
    while(T--)
    {
        int count = 0;
        scanf("%d",&n);
        for(i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
        }
        int r = 0;
        for(i=0;i<n;i++)
        {
            for(j=i;j<n;j++)
            {
                double k;
               k = sqrt(a[i]*a[i] + a[j]*a[j]);
               int t;
               t = k;
               if(k - t == 0)
               {
                   b[r++] = t;
               }
            }
        }
        for(i=0;i<r;i++)
        {
            for(j=0;j<n;j++)
            {
                if(a[j] == b[i])
                {
                    count++;
                }
            }
        }
        printf("%d\n",count);
    }
    return 0;
}


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

z797zFE4S4a9
最新推荐 更多

2024-05-31