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 分)的主要内容,如果未能解决你的问题,请参考以下文章

PAT——乙级1015/甲级1062:德才论

pat 1062 最简分数(20 分)错误

PAT乙级1049 数列的片段和 (20 分)

1062. 最简分数

PAT 1062. 最简分数(20)

pat甲级75分在啥水平