1062 最简分数
这题我比较直观的思路就是将分母和K计算出来公倍数,统一分母,然后分子从小到大依次枚举。
#include <bits/stdc++.h> using namespace std; const int inf = 0x3f3f3f3f; #define ll long long int gcd(int a,int b){ if(!b) return a; return gcd(b,a%b); } int lcm(int a,int b){ return a/gcd(a,b)*b; } int main(){ int a,b,c,d,e; scanf("%d/%d %d/%d %d",&a,&b,&c,&d,&e); int gb = lcm(b,e); gb=lcm(d,gb); int fenzi=gb/b*a; int fenzi2=gb/d*c; int count=0; int start=min(fenzi,fenzi2); int ed=max(fenzi,fenzi2); for(int i=start+1;i<ed;i++){ int gy=gcd(i,gb);//公约数 if(gb/gy==e){ if(count) cout<<" "; printf("%d/%d",i/gy,e); count++; } } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)