勾股定理

原创 2015年11月20日 17:14:04

勾股定理

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

给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 <string.h>      
#include <stdio.h>    
#include<stdlib.h>       
int cmp(const void *a,const void *b)    
{    
   return *(int *)a-*(int *)b;    
}    
int  a[1010], b, ls[1010];      
 int f(int  x, int  y)      
{      
    int  m;      
    while(x < y)      
    {      
         m = x +(y-x) /2;      
        if(ls[m] == b) return 1;      
        else if (ls[m] > b) y = m;      
         else x = m+1;      
     }      
    return -1;      
 }      
int main()      
{      
      
    int t;      
   while(~scanf("%d",&t))      
    while(t--)      
    {      
        int n, i, j;      
        scanf("%d",&n);      
        for(i = 0; i < n; i++)      
        {      
            scanf("%d",&a[i]);      
            ls[i] = a[i]*a[i];      
        }      
        qsort(a,n,sizeof(a[0]),cmp);      
        qsort(ls,n,sizeof(ls[0]),cmp);      
        int c = 0;      
         for(i = 0; i < n; i++)      
         {      
             for(j = i+1; j < n; j++)      
             {      
                 int k;      
                 b = a[i] *a[i] + a[j] *a[j];      
                 k = f(j,n);      
                 if(k == 1)      
                  c+=k;      
             }      
         }      
            printf("%d\n",c);      
    }      
    return 0;      
}

勾股定理.exe

  • 2013年06月21日 10:20
  • 21.97MB
  • 下载

ACM--勾股定理--HDOJ 2393--Higher Math

HDOJ题目地址:传送门 Higher Math Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (J...

【bzoj2327】[HNOI2011]勾股定理

树形DP,数学相关
  • KikiDMW
  • KikiDMW
  • 2017年03月31日 15:14
  • 293

勾股定理计算器

  • 2013年03月15日 16:44
  • 11KB
  • 下载

勾股定理的证明--张秀洲整理

  • 2009年06月17日 23:02
  • 166KB
  • 下载

勾股定理是正确的吗?还是不够正确

上一篇世界是有限的还是无限的,让我联想到一个更有意思的问题,就单独拿出来讲讲吧,内容是差不多的,只是为了便于阅读和讨论。一些哲学问题和数学不分家。 勾股定理是正确的吗?对此我也表示怀疑,因为根号2是一...
  • zhyxhys
  • zhyxhys
  • 2016年05月02日 14:11
  • 320

用几何画板证明勾股定理的方法

几何画板作为专业的几何绘图工具,不仅仅可以用它绘制一些几何图形,同时还可以用它来证明一些几何定理结论,比如前面学过的用几何画板验证弦切角定理、垂经定理等等,下面我们就一起来学习用几何画板证明勾股定理的...

在CTeX上编码论文《杂谈勾股定理》及论文式样

在CTeX上实现论文《杂谈勾股定理》编码如下: %-*- coding: UTF-8 -*- %gougu.tex %勾股定理 \documentclass[UTF8]{ctexart} \ne...

勾股定理

勾股定理,西方称为毕达哥拉斯定理,它所对应的三角形现在称为:直角三角形。   已知直角三角形的斜边是某个整数,并且要求另外两条边也必须是整数。   求满足这个条件的不同直角三角形的个数。 【数据...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:勾股定理
举报原因:
原因补充:

(最多只允许输入30个字)