洛谷P1888

本文介绍了一道关于勾股数的编程题,通过输入一组勾股数a、b、c,输出其中较小锐角的正弦值,并对代码实现进行了详细说明。

题目

原题地址
题目描述
输入一组勾股数a,b,c(a≠b≠c),用分数格式输出其较小锐角的正弦值。(要求约分。)

输入输出格式
输入格式:
一行,包含三个数,即勾股数a,b,c(无大小顺序)。

输出格式:
一行,包含一个数,即较小锐角的正弦值

输入输出样例
输入样例#1:
3 5 4
输出样例#1:
3/5

题解

妹的正弦值是什么玩意儿。。。搞好久才反应过来是sin,这还是在个 Rt 里面算,连三角函数都省了,直接拿最短边除最长边即可。结果要约分,我在获取数据的时候就直接把俩数除以gcd了。本来我还写了判断结果能不能整除的逻辑,后来一想,整除个P啊,小数除大数能整除都有鬼了好吧。。。。。果然日常智障。

代码

#include <iostream>
#include <algorithm>
#include <iterator>
using namespace std;
int gcd(int a, int b){
    if(b == 0)
        return a;
    else
        return gcd(b, a%b);
}
int main(int argc, const char * argv[]) {
    int iar[3] = {-1};
    cin >> iar[0] >> iar[1] >> iar[2];
    sort(begin(iar), end(iar));
    int temp = gcd(iar[0], iar[2]);
    iar[0] /= temp; iar[2]/= temp;
    cout << iar[0] << '/' << iar[2];
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值