比赛 20120302 评测结果 AAAAAAAAAAA
题目名称 法雷序列 最终得分 100
用户昵称 Yeehok 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-03-02 20:13:04
显示代码纯文本
#include<cstdio>
using namespace std;
struct node
{
	int mom;
	int son;
	node()
	{
		mom=0;
		son=0;
	}
}num[40000];
int n,top=-1;
int gcd(int a,int b)
{
	while(b^=a^=b^=a%=b);
	return (a);
}
int main()
{
	freopen("frac1.in","r",stdin);
	freopen("frac1.out","w",stdout);
	scanf("%d",&n);
	if(!n)
		return (0);
	printf("0/1\n");
	for(int i=2;i<=n;i++)
	{
		for(int j=1;j<i;j++)
		{
			if(gcd(i,j)==1)
			{
				num[++top].mom=i;
				num[top].son=j;
			}
		}
	}
	double Max=10;
	int p=0;
	for(int j=0;j<=top;j++)
	{
		for(int i=0;i<=top;i++)
		{
			double tmp=double(num[i].son)/double(num[i].mom);
			if(tmp<Max)
			{
				Max=tmp;
				p=i;
			}
		}
		Max=10;
		printf("%d/%d\n",num[p].son,num[p].mom);
		num[p].son=num[p].mom=1;
	}
	printf("1/1\n");
	return (0);
}