PTA---1062 最简分数(C语言+测试点1)

PTA—1062 最简分数

题目直达链接点我

测试点1

题目没说第一个给出的就是小的那个,后边那个就是大的那个区间,so需要后续判断…

AC代码

#include <stdio.h>
int not_have(int a,int b)				//看是否有最小公倍数 
{
	if(a == b)
	return 0;
	
	int x = b,y = a,z = 1;
	if(a > b)
	x = a,y = b;
	
	while(z)
	{
		z = x%y;
		x = y;
		y = z;
	}
	
	if(x == 1)
	return 1;
	return 0;
}
void swap(int &a,int &b)
{
    int x = a;
    a = b;
    b = x;
}
int main()
{
    int n1,m1,n2,m2;
    scanf("%d/%d %d/%d",&n1,&m1,&n2,&m2);
    if(n1/(double)m1 > n2/(double)m2)
    {
        swap(n1,n2);
        swap(m1,m2);
    }
    
    int k,i,j;
    scanf("%d",&k);
    if(n1 == 0)
    {
        int sum = 0;
        for(i=1;i*m2<k*n2;i++)
            if(not_have(i,k))
                printf(sum==0?"%d/%d":" %d/%d",i,k),sum++;
        return 0;
    }
    else if(n2 == 0)
        return 0;
        
    int sum=0;
	i=1;
    while(i*m1 <= n1*k)
    	i++;
    
    for(;i*m1 > n1*k && i*m2 < k*n2;i++)
        if(not_have(i,k))
            printf(sum==0?"%d/%d":" %d/%d",i,k),sum++;
    return 0;
}

---------------------------------------------------------------------------------------end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值