专栏文章

P1888题解

P1888题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miq5p04l
此快照首次捕获于
2025/12/03 23:22
3 个月前
此快照最后确认于
2025/12/03 23:22
3 个月前
查看原文

P1888 三角函数

题目描述

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

输入格式

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

输出格式

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

输入输出样例 #1

输入 #1

CPP
3 5 4

输出 #1

CPP
3/5

说明/提示

数据保证:a,b,ca,b,c 为正整数且 [1,109]\in [1,10^9]

题目传送门题目传送门

要求要求

  • 求正弦值即sin函数(邻边:斜边)求正弦值即sin函数(邻边:斜边)

  • 需要化简分式并且按格式输出a/b需要化简分式并且按格式输出a/b

做法做法

  • 先排序把最小、最小的边求出来先排序把最小、最小的边求出来

CPP
  int a,b,c;
  cin>>a>>b>>c;
  int A,B,C;
	A=max(a,max(b,c));
	C=min(a,min(b,c));
	B=a+b+c-A-C;
	a=A,b=B,c=C;
  • 再求出最大公因数,除去后按格式输出再求出最大公因数,除去后按格式输出

CPP
long long gcd(long long a,long long b){
	if(b==0)
		return a;
	return gcd(b,a%b);
}//最大公因数 

代码代码

CPP
#include <iostream>
using namespace std;
long long gcd(long long a,long long b){
	if(b==0)
		return a;
	return gcd(b,a%b);
}//最大公因数 
int main(){
    int a,b,c,cnt;
    cin>>a>>b>>c;
	int A,B,C;
	A=max(a,max(b,c));
	C=min(a,min(b,c));
	B=a+b+c-A-C;
	a=A,b=B,c=C;
	cout <<a<<' '<<b<<' '<<c<<endl; 
    int x,y,z;
    x=a,y=c;
    z=gcd(x,y);
    x/=z,y/=z;
    cout <<y<<'/'<<x;
    return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...