一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0。

最简分数是指分子和分母没有公约数的分数表示形式。

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

输入格式:

输入在一行中按N/M的格式给出两个正分数,随后是一个正整数分母 K,其间以空格分隔。

题目保证给出的所有整数都不超过 1000。

输出格式:

在一行中按 / 的格式列出两个给定分数之间分母为 K 的所有最简分数,按从小到大的顺序,其间以 1 个空格分隔。

行首尾不得有多余空格。

题目保证至少有 1 个输出。

输入样例:

7/18 13/20 12

输出样例:

5/12 7/12

分析:  计算给定两个分数的值  在两个值之间遍历分母为k的所有可能情况  将该数通分后判断分母是否为k  将所有结果输出即可  PS:    一定要通分    输入的两个分数要保证左大右小 

 1 //c++
 2
 3 #include<iostream>
 4 using namespace std;
 5
 6 //将分数转换为double
 7 double func(char *s){
 8   int a=0,b=0,i=0;
 9   for(;s[i]!='/';i++)
10     a=a*10+s[i]-'0';
11   for(i++;s[i]!='\0';i++)
12     b=b*10+s[i]-'0';
13   return 1.0*a/b;
14 }
15
16 //计算最大公约数gcd
17 int gcd(int a,int b){
18     int m;
19     if(a<b){
20         m=a;
21         a=b;
22         b=m;
23     }
24     while(b){
25         m=a%b;
26         a=b;
27         b=m;
28     }
29     return a;
30 }
31
32 int main(){
33   char a[10],b[10];
34   double da,db;
35   int k,g,p,q,f=0;
36   cin>>a>>b>>k;
37   da=func(a);
38   db=func(b);
39   if(da>db){
40       double t=da;
41       da=db;
42       db=t;
43     }
44   for(int i=1;i<=k*1000;i++){
45       double v=1.0*i/k;
46     if(da<v&&v<db){
47       g=gcd(i,k);
48       p=i/g;
49       q=k/g;
50       if(q==k){
51         if(f){
52           cout<<' ';
53         }
54         cout<<p<<'/'<<q;
55         f=1;
56       }
57     }
58   }
59   return 0;
60 }

  

转载于:https://www.cnblogs.com/tenjl-exv/p/10080172.html

PAT-乙级-1062 最简分数相关推荐

  1. PAT乙级 1062 最简分数 (20 分)

    一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N1/M1和 N2/M2,要求你按从小到大的顺序列出它们之间分 ...

  2. C++学习之路 | PTA乙级—— 1062 最简分数 (20 分)(精简)

    1062 最简分数 (20 分) 一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N ​1 ​​ /M ​1 ...

  3. PAT乙级题目索引(题目+解析+AC代码)

    题目信息 分值 PAT 乙级 1001 害死人不偿命的(3n+1)猜想 15 PAT 乙级 1002 写出这个数 20 PAT 乙级 1003 我要通过! 20 PAT 乙级 1004 成绩排名 20 ...

  4. 1062最简分数c语言,1062 最简分数 (20分)C语言

    一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N1/M1和 N2/M​2,要求你按从小到大的顺序列出它们之间 ...

  5. 1062 最简分数(PAT乙级 C++)

    题目 一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N1/M​1​​ 和 N​2/M​2​​ ,要求你按从小 ...

  6. 1062. 最简分数(20)-PAT乙级真题

    1062. 最简分数(20) 一个分数一般写成两个整数相除的形式:N/M,其中M不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N1/M1 和 N2/M2,要求你按 ...

  7. PAT (Basic Level) Practise (中文)1062. 最简分数(20)

    1062. 最简分数(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 一个分数一般写成两个整数相除的形式: ...

  8. PAT Basic level 1062 最简分数 (20分)

    1062 最简分数 (20分) 一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N1 /M1和 N2/M2 , ...

  9. PAT 乙级(Basic Level) 题解汇总(持续更新)(C++)

    前言 为了准备3月份的CCF CSP认证,以及提升自己的编程能力和数据结构与算法基础,目前我坚持每天刷pat乙级题库,然后记录在CSDN.一则,希望夯实我做过的题和学到的东西:二则,希望对和我一样的小 ...

  10. 【PTA】 PAT乙级真题,95题(C++,AC代码)

    PAT乙级真题95题 标号 标题 分数 通过数 提交数 通过率 1001 害死人不偿命的(3n+1)猜想 15 109558 309119 0.35 1002 写出这个数 20 71739 28156 ...

最新文章

  1. 初识C语言---(4)
  2. com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'user'
  3. JAVA之JVM GC 机制与性能优化
  4. Android -- Camera聚焦流程
  5. shp与json互转(转载)
  6. opencv基础:adaboost+haar目标检测技术(上)
  7. java 盘符 系统_给想学java的小白们的福利——java开发入门
  8. LINUX安装依赖库的解决办法
  9. 刚办的电信卡显示无服务器,刚刚买的电信卡怎么不能用说什么只限紧急呼叫
  10. leetcode--打家劫舍
  11. 龙卷风路径_ae龙卷风路径
  12. java泛型:T与?的使用及区别
  13. 植物DNA甲基化专题 | nature:油棕Karma转座子表观遗传重要发现
  14. antdv 表格标题换行
  15. 推荐一款绘图神器visual-paradigm
  16. 【论文笔记】 Reinforcement-Learning-Guided Source Code Summarization using Hierarchical Attention
  17. 计算机工作日志小学,班主任工作日志记录 小学班主任工作计划合集
  18. 利用pandas进行简单数据分析-医院销售数据分析案例
  19. “核高基”的专家有哪些人?
  20. 安装Hadoop,让word count飞起来

热门文章

  1. java web 请求跟踪_IT兄弟连 JavaWeb教程 Servlet会话跟踪 Cookie技术
  2. 手动构建磁贴服务器(16.04.2 LTS)
  3. React Router路由详解
  4. perror的特殊输出
  5. [html] 在主框架下引入的iframe,如果检测这个iframe是否能打开,如果打不开则跳到404页面
  6. [html] 谈谈你对input元素中readonly和disabled属性的理解
  7. 前端学习(2424):关于问题的解决方式
  8. 前端学习(2186):知识回顾
  9. 前端学习(1816):前端面试题之作用域和值类型传递的参数1
  10. 前端学习(1425):同步异步概述