循环小数-分数备忘

2024-06-08 09:18
文章标签 分数 备忘 循环小数

本文主要是介绍循环小数-分数备忘,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

虽然比较简单,但是代码比我的优美多了,果断转
#include <iostream>
using namespace std;
int f(int u,int v)
{while(u%v){int w=u%v;u=v;v=w;}return v;
}
int main()
{int t;while(cin>>t){while(t--){char a[15];cin>>a;int p=0,q=0,t=0,x=0,y,k=1,l=1,max;for(int i=2;a[i]!='\0';i++){if(!t && a[i]!='(') {p++;x*=10;x+=a[i]-'0';}if(t && a[i]!=')') {q++;y*=10;y+=a[i]-'0';}if(a[i]=='(') {t=1;y=x;q=p;}}if(!q){while(p--)k*=10;max=f(x,k);x/=max;k/=max;cout<<x<<'/'<<k<<endl;}else{int m=y-x;while(p--)k*=10;while(q--)l*=10;int n=l-k;max=f(m,n);m/=max;n/=max;cout<<m<<'/'<<n<<endl;}}}return 0;
}

这篇关于循环小数-分数备忘的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1041767

相关文章

poj 2976 分数规划二分贪心(部分对总体的贡献度) poj 3111

poj 2976: 题意: 在n场考试中,每场考试共有b题,答对的题目有a题。 允许去掉k场考试,求能达到的最高正确率是多少。 解析: 假设已知准确率为x,则每场考试对于准确率的贡献值为: a - b * x,将贡献值大的排序排在前面舍弃掉后k个。 然后二分x就行了。 代码: #include <iostream>#include <cstdio>#incl

[C/C++入门][进制原理]31、求分数序列和

题目来自于信息学奥赛 1078 分析: 这道题看起来比较复杂,实际上只需要通过两个公式,一次性求出分母和分子,然后把这个求出来的数加入到变量和中。甚至都不需要知道总共游哪些数。数组都用不上。循环就能解决。 #include <iostream>#include <iomanip> // 用于格式化输出using namespace std;int main() {double s

【POJ】2976 Dropping tests 01分数规划

传送门:【POJ】2976 Dropping tests 题目大意:给你长度为n的一对整数a[],b[](注意是一对的),根据式子可以得到:∑a[ i ] / ∑b[ i ],现在给你整数k,你可以从n个中剔除k对,问剩下的根据式子能得到的最大值是多少,答案*100并且四舍五入精确到个位。 题目分析: 很清晰的01分数规划,设Q(L) = ∑a[ i ] - L * ∑b[ i

【POJ】2728 Desert King 最优比率生成树——01分数规划【经典】

最近在刷巨巨们放出来的专题,然后没做几题就卡住了,果然还是太弱了T U T... 这次做到了一题01分数规划求解的生成树问题。 题目大意是这样的:给你一个无向完全图,每条边i都有两个权值,长度a[ i ],花费b[ i ],需要选出其中的一些边构造一颗生成树,生成树需要满足条件:∑ b [ i ] / ∑ a [ i ]最小。 这样我还是先来介绍一下01分数规划吧~ 给定一个上述的问

Vi操作备忘

Vi操作备忘       Vi是Linux系统里面的一个屏幕编辑程序,在终端中使用。Vi对文件的修改是在文件的副本上进行的,除非编辑顺利,并保存之后才会用修改的副本替代原始文件,否则,修改的内容会全部放弃,重新回到原始文件。       Vi是一个优秀的代码工程师所必备的技能。故在此简述vi备忘。 1、可以在终端上,输入以下形式的命令行,进入vi编辑程序:       vi filename

分数阶微积分MATLAB计算

习题1 syms t z;Gam=int(exp(-t)*t^(z-1),t,0,inf);I1=subs(Gam,z,sym(1/2)),I2=subs(Gam,z,sym(3/2)),I3=subs(Gam,z,sym(5/2)),I4=subs(Gam,z,sym(7/2))

Java100:javaSE备忘

char c='\u4e00' //汉字开始 char c='\u9fa5'//汉字结束 java 正则   正则表达式:  java.util.regex.Pattern     [] 匹配的一个字符     [^a] 一个非a的字符     [^abcd]一个非a,b,c,d的字符     [A-Z] 一个 A-Z 的字符     [a-z] 一个a-z的字符     [0-9] 一个0

java99:java 基础备忘

程序 = 算法+数据结构     算法:解决问题的步骤      数据结构:将数据按照某种结构来保存     好的数据结构 => 好的算法 char 可以存储一个中文字符(1个char是两个字节,一个中文字符也是两个字节) && 短路 常用 三目运算 int a = 1; int b = 2; int c = a > b ? c =0101 : c = 1010 boolean ? 1:2

Docker在CentOS上硬盘使用被占满的问题(备忘)

摘录至 https://github.com/yeasy/docker_practice/blob/master/image/rm.md#centosrhel-的用户需要注意的事项 在CentOS上,遇到过这个问题。没有细究过。正好看到,记录之 内容如下: CentOS/RHEL 的用户需要注意的事项 在 Ubuntu/Debian 上有 UnionFS 可以使用,如 aufs 或者 o

RocketMQ安装、部署(备忘)

RocketMQ 这段时间接触了不少 MQ 产品,印象最为深刻的,当属 RocketMQ 个人认为其架构设计的十分合理 官方地址: https://github.com/apache/rocketmq 使用下来,最开始的安装、部署,遇到不少问题,因此特地备忘下 主要问题均来至 JDK 版本比官方的新 安装相关 官方文档: https://rocketmq.apache.org/doc