三角形

来源:互联网 发布:软件项目质量计划 编辑:程序博客网 时间:2024/04/29 21:39

Description

一天mingming问了Flying一个数学问题:给出一个整数,存在多少个直角三角,它的某一条边等于这个整数,而且其它边也是整数。Flying是做ACM的,他就写了个程序解决了这个问题。你也能写个程序解决吗?

Input

第一行一个整数n, 代表有多少个数据( 1 <= n<= 20)。接下来有n行,没一行有一个数据。一个数据就是个整数ai ( 1 <= i <= n, 1 <= ai <= 100)。

Output

每个数据都必须有相应的输出。两个数据之间有一个空行。最后一个测试数据输出后不要加空行。对于每一个数据,如果找不到解,则输出一个空行。如果找到解,就把符合条件的所有直角三角形输出。每个三角行占一行,输出该三角行的另外两条边,必须先输出长边,然后一个逗号,再输出短边。两个三角行之间不能有空行,而且必须按长边降序排列。

Sample Input

22012

Sample Output

101,9952,4829,2125,1516,1237,3520,1615,913,5

骗小孩玩的,纯娱乐;
#include<stdio.h>
#include<math.h>
int main()
{
int ncase,i,j,k,m,n,ok=0,dd;
scanf("%d",&ncase);
while(ncase--)
{
if(ok==1)
   printf("\n");
scanf("%d",&n);
dd=0;
for(i=10000;i>=1;i--)
{   
   if(i>n)  
         {
   m=(int)sqrt(i*i-n*n);
  }
         else
             m=(int)sqrt(n*n-i*i);    
   if(m*m+n*n==i*i&&m!=0)
    {
    dd=1;
     printf("%d,%d\n",i,m);
     }  
          if(m*m+i*i==n*n&&i>=m&&m!=0)
      {
      dd=1;
      printf("%d,%d\n",i,m);
      }
}
if(dd==0)
printf("\n");
   ok=1;
}
return 0;
}

原创粉丝点击