【洛谷P1888 三角函数】蒟蒻题解

用两个变量分别存储了输入的三个数中最大的那个和最小的那个,然后算出它俩的最大公因数进行约分即可。

原题:传送门
本蒟蒻的题解,让大神们见笑了!
首先,正弦值是个毛线咋们不需要知道(其实我也不咋地了解),我们要知道的是:其实题目就是让我们使输入中最小的数除以最大的数以分数形式呈现,然后约成最简分数。除此之外,一律不管。
这么说起来就容易多了。
咳咳,进入代码讲解环节:

#include<bits/stdc++.h> //万能库万岁!!!
using namespace std;
int a,b,c,minn,maxx;
int main()
{
	cin>>a>>b>>c;

输入部分没什么可以讲的,咋们就跳过了。

	minn=min(a,min(b,c)),maxx=max(a,max(b,c));
	cout<<minn/__gcd(minn,maxx)<<"/"<<maxx/__gcd(minn,maxx);
	return 0;
}

这一段引用了三个函数:min()、max()、gcd(),如果不讲一讲它们的作用,导致整个题解变得不清不楚那我就太没良心了哈。

  • min()min():输入两个参数,返回小的那一个数。
  • max()max():输入两个参数,返回大的那一个数。
  • gcd()gcd():输入两个参数,返回这两个参数的最大公因数。

以上是我对以上函数的浅薄认识,一些比较复杂的用法我不太懂,请各位多多指教。
言归正传,上面这一行代码,我用两个变量分别存储了输入的三个数中最大的那个和最小的那个,然后算出它俩的最大公因数进行约分,最后输出就行了。
完整代码如下:

#include<bits/stdc++.h> //万能库万岁!!!
using namespace std;
int a,b,c,minn,maxx;
int main()
{
	cin>>a>>b>>c;
	minn=min(a,min(b,c)),maxx=max(a,max(b,c));
	cout<<minn/__gcd(minn,maxx)<<"/"<<maxx/__gcd(minn,maxx);
	return 0;
}