题解 P1888 【三角函数】

题目链接

题目数据有点特殊,所以数组不用开太大!!!

那么本题思路就是:先输入,再排序,最后找最大值和最小值的最大公约数约分、

最后输出。

直接上代码。

#include<bits/stdc++.h>
using namespace std;
long long a[3]//数组3个就好;
long long q,w;//用来储存约分后的值
long long gcd(long long a,long long b)//注意点数据范围,第一次就这么被坑了
{
    return b==0?a:gcd(b,a%b);//辗转消除,另一种表达形式,三目运算符
}
int main()
{
    for(int i=0;i<3;i++)//循环输入
{
        cin>>a[i];
    }
    sort(a,a+3);//排序函数
    q=a[0]/gcd(a[0],a[2]);//这是最小的数
    w=a[2]/gcd(a[0],a[2]);//这是最大的数,也就是说,斜边
    cout<<q<<"/"<<w;//直接输出
    return 0;//程序拜拜
}


其实新手要是练排序的话不用sort。

排序代码如下

for(int j=0;j<2;j++)
    for(int i=1;i<3;i++)
    if(a[i]<=a[i-1])
    {
    long long p=a[i];
    a[i]=a[i-1];
    a[i-1]=p;
    //cout<<a[0]<<" "<<a[1]<<" "<<a[2]<<endl;//这是测试数据。
}


好的就这样吧。

猜你喜欢

转载自www.cnblogs.com/cn-suqingnian/p/9179933.html