直角三角形的边

    在直角三角形中,两个直角边的平方和等于斜边的平方,也就是非常著名的“勾股定理”,那么这100以内的数字中,就存在着这样的一些数,比如:3,4,5,3的平方加上4的平方等于5的平方,这三个数就可以组成一个直角三角形。   现在我们要求出这些数(要求相同度数的直角三角形的三条边使用最小值,比如:6,8,10就要变成3,4,5)。

    关键在于如何有效处理3、4和6、8的情况,选择前者是因为二者互质。参考代码如下:


#include "stdio.h"
#include "math.h"

int gcd(int a,int b)
{
	if (a<b) {int temp=a; a=b; b=temp;}

	if (a%b==0) return b;
	else return gcd(b,a%b);
}

int pfs(int a) //完全平方数
{
	if (pow(((int)(sqrt(a*1.0)))*1.0,2)==a)
		return 1;
	else return 0;
}

void main()
{
	for(int i=1;i<100;i++)	
		for(int j=i+1;j<100;j++)
			if(i*i+j*j<10000 && gcd(i,j)==1 && pfs(i*i+j*j)==1)
				printf("length: %d\t width: %d\t, edge: %d\n",i,j,(int)sqrt(i*i+j*j+0.0));	
}







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值