PAT乙级1062 最简分数 (20 分)
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT乙级1062 最简分数 (20 分)相关的知识,希望对你有一定的参考价值。
#include<cstdio>
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
string s,ss;
int c,x1,y1,x2,y2;
int sum;
int gcd(int a,int b)
{
return b?gcd(b,a%b):a;
}
int main(void)
{
cin>>s>>ss>>c;
x1=stoi(s.substr(0,s.find('/')+1));
s=s.substr(s.find('/')+1);
y1=stoi(s);
x2=stoi(ss.substr(0,ss.find('/')+1));
ss=ss.substr(ss.find('/')+1);
y2=stoi(ss);
int k=0;
for(int i=1;i<c;i++)
{
double temp1=i*1.0/c;
double temp2=x1*1.0/y1;
double temp3=x2*1.0/y2;
if(temp2>temp3) swap(temp2,temp3);
if(temp1-temp2>=1e-8&&temp3-temp1>=1e-8&&gcd(i,c)==1)
{
if(k) printf(" ");
printf("%d/%d",i,c);
k++;
}
}
cout<<endl;
}
以上是关于PAT乙级1062 最简分数 (20 分)的主要内容,如果未能解决你的问题,请参考以下文章