题目链接:Fraction
题目大意:给你一个n,计算最大的a/b使得a与b互质且a < b,a+b = n
题目思路:枚举就好了,a要尽量大,b尽量小就好了,在n/2附近去取
#include <map>
#include <set>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int n;
while(~scanf("%d",&n)){
int a,b;
for(int i = 1;i <= n/2;i++){
if(__gcd(i,n-i) == 1) a = i,b = n-i;
}
printf("%d %d\n",a,b);
}
return 0;
}
本文介绍了一种通过枚举方式解决数学问题的方法:给定一个整数n,找到最大的分数a/b,使得a与b互质且a<b,同时a+b等于给定的n。通过在n/2附近寻找合适的a值,利用__gcd函数判断两个数是否互质。
264

被折叠的 条评论
为什么被折叠?



