|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在直角三角形中,两个直角边的平方和等于斜边的平方,也就是非常著名的“勾股定理”,
当输入正整数n时,那么从1~n的数字中,就存在着这样的一些数,比如:3、4、5三个数字,3的平方加上4的平方等于5的平方,这三个数就可以组成一个直角三角形。
编程求出满足条件的这些数(要求相同度数的直角三角形的三条边使用最小值,比如:6,8,10就要变成3,4,5)。
输出直角三角形相应的三条边,由小到大,每种情况占一行.
例如:输入15,输出3 4 5
- 5 12 13
- #include<stdio.h>
- int main()
- {
- int a,b,c,n,t=0,i,j,k=0,flag=1,temp;
- int a1[10000],b1[10000],a2[10000],b2[10000],c1[10000],c2[10000],f[10000];
- double d1[10000];
- scanf("%d",&n);
- for(c=n;c>=5;c--)
- {
- for(b=c;b>=4;b--)
- {
- for(a=b;a>=3;a--)
- {
- if((a*a+b*b)==c*c)
- {
- a1[k]=a;
- b1[k]=b;
- c1[k]=c;
- d1[k]=1.0*a/c;
- k++;
- }
- }
- }
- }
- for(i=k-1;i>=0;i--)
- {
- for(j=k-1;j>=i+1;j--)
- {
- if(d1[i]==d1[j])
- {
- flag=0;
- }
- }
- if(flag==1)
- {
- a2[t]=a1[i];
- b2[t]=b1[i];
- c2[t]=c1[i];
- f[t]=a2[t]+b2[t]+c2[t];
- t++;
- }
- flag=1;
- }
- for(i=0;i<t-1;i++)
- {
- for(j=i+1;j<t;j++)
- {
- if(f[i]>f[j])
- {
- temp=a2[i];
- a2[i]=a2[j];
- a2[j]=temp;
- temp=b2[i];
- b2[i]=b2[j];
- b2[j]=temp;
- temp=c2[i];
- c2[i]=c2[j];
- c2[j]=temp;
- }
- }
- }
- for(i=0;i<t-1;i++)
- {
- printf("%d %d %d\n",a2[i],b2[i],c2[i]);
- }
- printf("%d %d %d",a2[t-1],b2[t-1],c2[t-1]);
- return 0;
- }
复制代码
|
|