题解 P1888 【三角函数】
Iowa_BattleShip
2017-10-11 15:40:19
看了大佬们各种碉堡的算法(什么欧几里得算法之类),本蒟蒻只能送上自己的蒟蒻快排代码…………
```cpp
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int a[5];//储存边
void qsort(int l,int r)
{
int mid=(l+r)/2,i=l,j=r;
mid=a[mid];//取中间数,本蒟蒻不会用随机快排= =
while(i<=j)
{
while(a[i]<mid)//在左半部分寻找比中间数大的数
i++;
while(a[j]>mid)//在右半部分寻找比中间数小的数
j--;
if(i<=j)//保证不越界
{
swap(a[i],a[j]);//swap交换两个数
i++;//继续找
j--;
}
}
if(l<j)//若没有到两数的边界就递归搜左右区间
qsort(l,j);
if(i<r)
qsort(i,r);
}
int main()
{
int i,mi,ma;
scanf("%d%d%d",&a[1],&a[2],&a[3]);//输入
qsort(1,3);//快排来排序
mi=a[1];
ma=a[3];
for(i=2;i<=mi;i++)//直接暴力枚举因数来约分,欧几里得算法是不存在的= =
if(mi%i==0&&ma%i==0)
{
mi/=i;
ma/=i;
}
printf("%d/%d",mi,ma);
return 0;
}
```