比赛 20120302 评测结果 AAAAAAAAAAA
题目名称 法雷序列 最终得分 100
用户昵称 Cloud 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-03-02 21:02:03
显示代码纯文本
#include<fstream>
using namespace std;
struct In
{
	int fz;
	int fm;
	double m;
}y[8000];
int t;
int gcd(int x,int z)
{
	if(x==0) return z;
	if (z==0) return x;
	if(x<z)
	{
		t=x;
		x=z;
		z=t;
	}
	if(x%z==0)return z;
	return gcd(z,x%z);
}
int main(void)
{
	ifstream fin("frac1.in");
	ofstream fout("frac1.out");
	int n,p=0;
	int a,b,c;
	fin>>n;
	int i,j;
	for(i=1;i<=n;i++)
		for(j=n;j>0;j--)
		{
			a=gcd(j,i);
			if((a==1)&&(j>i))
			{
				y[p].m=(double)j/i*1000000;
				y[p].fz=i;
				y[p].fm=j;
				p++;
			}
		}
	for(i=0;i<p;i++)
		for(j=0;j<p;j++)
			if(y[i].m>y[j].m)
			{
				a=y[i].fz;
				b=y[i].fm;
				c=y[i].m;
				y[i].fz=y[j].fz;
				y[i].fm=y[j].fm;
				y[i].m=y[j].m;
				y[j].fz=a;
				y[j].fm=b;
				y[j].m=c;
			}
	if(n)
	{
		fout<<"0/1"<<endl;
		for(i=0;i<p;i++)
			fout<<y[i].fz<<"/"<<y[i].fm<<endl;
		fout<<"1/1"<<endl;
	}
	else return 0;
	fin.close();
	fout.close();
	return 0;
}