daydayupchen 2021-09-11 19:02 采纳率: 0%
浏览 18
已结题

PAT B1062遇到问题,测试点全错

样例可以正确输出,但是所有测试点全错,不知问题出在哪里?请各位指点!


#include<bits/stdc++.h>
using namespace std;

int main(){
    int n1,m1,n2,m2,k,flag=0;
    scanf("%d/%d %d/%d %d",&n1,&m1,&n2,&m2,&k);
    //先求分母的最大公约数,再求分母的最小公倍数,通分
    //通分后可以的到两个分子,分别是上下限,再遍历这个上下限中间所有的数
    //如果出现分子和该分母化简后分母为K,那么就可以输出了 
    int a=m1,b=m2;
    while (b) {
        int c=a%b;
        a=b;b=c;
    }//此时a就是最大公约数
    int max_common_divisor=a;
    int min_common_multiple=m1*m2/a;
    int min_numerator=n1*(min_common_multiple/m1),max_numerator=n2*(min_common_multiple/m2);
    if (min_numerator>max_numerator) swap(min_numerator,max_numerator);
    for (int i=min_numerator;i<=max_numerator;i++){
        //现在的分数为 i/min_common_multiple
        int a=i,b=min_common_multiple;
        while (b){
            int c=a%b;
            a=b;b=c;
        }//找到了目前分子分母的最大公约数 
        if((min_common_multiple/a)==k){
            if (!flag) {
                printf("%d/%d",i/a,k);
                flag=1;
            }
            else printf(" %d/%d",i/a,k);
        } 
    }
    return 0;
}
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 9月19日
    • 创建了问题 9月11日

    悬赏问题

    • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
    • ¥15 怎么看我在bios每次修改的日志
    • ¥15 python+mysql图书管理系统
    • ¥15 Questasim Error: (vcom-13)
    • ¥15 船舶旋回实验matlab
    • ¥30 SQL 数组,游标,递归覆盖原值
    • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
    • ¥20 gitlab 中文路径,无法下载
    • ¥15 用动态规划算法均分纸牌
    • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据