zoukankan      html  css  js  c++  java
  • PAT 1062. 最简分数(20)

    一个分数一般写成两个整数相除的形式:N/M,其中M不为0。最简分数是指分子和分母没有公约数的分数表示形式。

    现给定两个不相等的正分数 N1/M1 和 N2/M2,要求你按从小到大的顺序列出它们之间分母为K的最简分数。

    输入格式:

    输入在一行中按N/M的格式给出两个正分数,随后是一个正整数分母K,其间以空格分隔。题目保证给出的所有整数都不超过1000。

    输出格式:

    在一行中按N/M的格式列出两个给定分数之间分母为K的所有最简分数,按从小到大的顺序,其间以1个空格分隔。行首尾不得有多余空格。题目保证至少有1个输出。

    输入样例:

    7/18 13/20 12
    

    输出样例:

    5/12 7/12
    
    需注意:
    一、两个分数的大小问题。
    二、输出的是最简分数的形式。
     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<stdlib.h>
     4 #include<ctype.h>
     5 #include<math.h>
     6 int huajian(int *a,int *b){
     7     int a1 = *a;
     8     int b1 = *b;
     9     int temp;
    10     while(b1){
    11         temp = a1%b1;
    12         a1 = b1;
    13         b1 = temp;
    14     }
    15     if(a1!=1){
    16         return 1;
    17     }
    18     else
    19         return 0;
    20 }
    21 int main(){
    22     int n1,n2,m1,m2;
    23     int k;
    24     scanf("%d/%d",&n1,&m1);    
    25     scanf("%d/%d",&n2,&m2);    
    26     scanf("%d",&k);
    27     int h = 1;
    28     int i = 1;
    29     int temp;
    30     if(n1*m2>n2*m1){
    31         temp = n2;
    32         n2 = n1;
    33         n1 = temp;
    34         temp = m1;
    35         m1 = m2;
    36         m2 = temp;
    37     }
    38     huajian(&n1,&m1);
    39     huajian(&n2,&m2);
    40     int h1 = 1;
    41     while(h){
    42         if(n1*k<i*m1){
    43             if(n2*k>i*m2){
    44                 if(!huajian(&i,&k)&&h1){
    45                     h1 = 0;
    46                     printf("%d/%d",i,k);
    47                     i++;
    48                     continue;
    49                 }
    50                 if(!huajian(&i,&k)){
    51                     printf(" %d/%d",i,k);
    52                 }
    53                     
    54             }
    55             else{
    56                 h = 0;
    57             }
    58         }
    59         i++;
    60     }
    61 } 
  • 相关阅读:
    如何添加mysql到环境变量
    SQLyog客户端无法连接MySQL服务器
    linux下插入的mysql数据乱码问题及第三方工具显示乱码问题
    mysql-5.7.10产生的日志时间与系统时间不一致
    linux—文件目录简单介绍
    python编程中的if __name__ == 'main' 的作用和原理
    Windows下Python版本的切换
    python—第三库的安装方法
    阿里云ubuntu16.04安装beef
    xss利用-beef攻击-演示
  • 原文地址:https://www.cnblogs.com/lolybj/p/6475906.html
Copyright © 2011-2022 走看看