加载中...

P1888 三角函数

三角函数

题目描述

输入一组勾股数 a,b,c(a!= b!= c),用分数格式输出其较小锐角的正弦值。(要求约分。)

输入格式

一行,包含三个正整数,即勾股数 a,b,c(无大小顺序)。

输出格式

一行,包含一个分数,即较小锐角的正弦值

样例 #1

样例输入 #1

3 5 4

样例输出 #1

3/5

提示

数据保证:a,b,c 为正整数且属于 [1,10^9]。

提交答案

#include<iostream>       //c++标准输入输出流   
using namespace std;     //命名空间  
long long maxn,minn;     //分别为斜边以及最短边  
long long gcd(long long,long long);  
int main()               //主函数   
{  
	long long a,b,c;     //由于数据出了int范围,所以用long long  
	cin>>a>>b>>c;
	
	minn=a;              //假设a为最小数 
	if(b<minn) minn=b;   //一旦小于最小数,就替换 
	if(c<minn) minn=c;   //同上
	 
	maxn=a;              //道理同上,只是改为了最大数判断 
	if(b>maxn) maxn=b;
	if(c>maxn) maxn=c;
	
	cout<<gcd(minn,maxn)<<"/"<<gcd(maxn,minn);
	return 0;            //结束主函数 
}

long long gcd(long long a,long long b)
{
	int yue;
	for(int i=a;i>=1;i--)//从高到低循环,确保求得的是最大公约数(无需判断a,b的大小) 
	{
		if(a%i==0 && b%i==0)
		                 //判断是否可以同时整除
		{
			yue=i;
			break;       //跳出循环
		}
	}
	return a/yue;        //返回值 
	
	/*
	int aa=a,bb=b;
	while(aa!=bb)
	{
		if(aa>bb)
		{
			aa=aa-bb;
		}
		else 
		{
			bb=bb-aa;
		}
	}
	return a/aa;
	*/
}
/*
3 5 4
3/5
--------------------------------
Process exited after 3.275 seconds with return value 0
请按任意键继续. . .

6 10 8
3/5
--------------------------------
Process exited after 3.961 seconds with return value 0
请按任意键继续. . .
*/
posted @ 2023-02-06 15:40  bujidao1128  阅读(135)  评论(0编辑  收藏  举报