玄学操作
查看原帖
玄学操作
1269186
chenzhiyuAndy楼主2024/5/8 22:38

27分代码

#include<bits/stdc++.h>
using namespace std;
struct Node{
	short x,y;
}a[30000005];
int gcd(int x,int y){
	if(x>y) swap(x,y);
	if(!x*y) return x+y;
	return gcd(y%x,x);
}
int n,s=1;
int cmp(Node x,Node y){return x.x*1.0/x.y<y.x*1.0/y.y;}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++) if(gcd(i,j)==1) a[s].x=i,a[s].y=j,s++;
	sort(a+1,a+s+1,cmp);
	cout<<"0/1\n";
	for(int i=1;i<s;i++) cout<<a[i].x<<"/"<<a[i].y<<endl;
	cout<<"1/1";
	return 0;
}

把sort(a+1,a+s+1,cmp)改成sort(a+1,a+s,cmp)就过了,为什么?

2024/5/8 22:38
加载中...