PAT-乙级-1062 最简分数
一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0。
最简分数是指分子和分母没有公约数的分数表示形式。
现给定两个不相等的正分数N1/M1 和 N2/M2,要求你按从小到大的顺序列出它们之间分母为 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 最简分数相关推荐
- PAT乙级 1062 最简分数 (20 分)
一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N1/M1和 N2/M2,要求你按从小到大的顺序列出它们之间分 ...
- C++学习之路 | PTA乙级—— 1062 最简分数 (20 分)(精简)
1062 最简分数 (20 分) 一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N 1 /M 1 ...
- PAT乙级题目索引(题目+解析+AC代码)
题目信息 分值 PAT 乙级 1001 害死人不偿命的(3n+1)猜想 15 PAT 乙级 1002 写出这个数 20 PAT 乙级 1003 我要通过! 20 PAT 乙级 1004 成绩排名 20 ...
- 1062最简分数c语言,1062 最简分数 (20分)C语言
一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N1/M1和 N2/M2,要求你按从小到大的顺序列出它们之间 ...
- 1062 最简分数(PAT乙级 C++)
题目 一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N1/M1 和 N2/M2 ,要求你按从小 ...
- 1062. 最简分数(20)-PAT乙级真题
1062. 最简分数(20) 一个分数一般写成两个整数相除的形式:N/M,其中M不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N1/M1 和 N2/M2,要求你按 ...
- PAT (Basic Level) Practise (中文)1062. 最简分数(20)
1062. 最简分数(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 一个分数一般写成两个整数相除的形式: ...
- PAT Basic level 1062 最简分数 (20分)
1062 最简分数 (20分) 一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N1 /M1和 N2/M2 , ...
- PAT 乙级(Basic Level) 题解汇总(持续更新)(C++)
前言 为了准备3月份的CCF CSP认证,以及提升自己的编程能力和数据结构与算法基础,目前我坚持每天刷pat乙级题库,然后记录在CSDN.一则,希望夯实我做过的题和学到的东西:二则,希望对和我一样的小 ...
- 【PTA】 PAT乙级真题,95题(C++,AC代码)
PAT乙级真题95题 标号 标题 分数 通过数 提交数 通过率 1001 害死人不偿命的(3n+1)猜想 15 109558 309119 0.35 1002 写出这个数 20 71739 28156 ...
最新文章
- 初识C语言---(4)
- com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'user'
- JAVA之JVM GC 机制与性能优化
- Android -- Camera聚焦流程
- shp与json互转(转载)
- opencv基础:adaboost+haar目标检测技术(上)
- java 盘符 系统_给想学java的小白们的福利——java开发入门
- LINUX安装依赖库的解决办法
- 刚办的电信卡显示无服务器,刚刚买的电信卡怎么不能用说什么只限紧急呼叫
- leetcode--打家劫舍
- 龙卷风路径_ae龙卷风路径
- java泛型:T与?的使用及区别
- 植物DNA甲基化专题 | nature:油棕Karma转座子表观遗传重要发现
- antdv 表格标题换行
- 推荐一款绘图神器visual-paradigm
- 【论文笔记】 Reinforcement-Learning-Guided Source Code Summarization using Hierarchical Attention
- 计算机工作日志小学,班主任工作日志记录 小学班主任工作计划合集
- 利用pandas进行简单数据分析-医院销售数据分析案例
- “核高基”的专家有哪些人?
- 安装Hadoop,让word count飞起来
热门文章
- java web 请求跟踪_IT兄弟连 JavaWeb教程 Servlet会话跟踪 Cookie技术
- 手动构建磁贴服务器(16.04.2 LTS)
- React Router路由详解
- perror的特殊输出
- [html] 在主框架下引入的iframe,如果检测这个iframe是否能打开,如果打不开则跳到404页面
- [html] 谈谈你对input元素中readonly和disabled属性的理解
- 前端学习(2424):关于问题的解决方式
- 前端学习(2186):知识回顾
- 前端学习(1816):前端面试题之作用域和值类型传递的参数1
- 前端学习(1425):同步异步概述