hdoj小数转化为分数
www
这个题虽然,没啥难度 但也不以理解....
某位大神的答案
strlen是所有字符串的长度
#include<cstdio>
#include<cmath>
#include<cstring>
char str[20];int gcd(int n,int m)
{int i;while(m){i=n%m;n=m;m=i;}return n;
}int main()
{int t,len,j,k,cnt,num,len_r,inter,i;scanf("%d",&t);while(t--){scanf("%s",str);len=strlen(str);if(!strchr(str,'(' ))//没有循环节的情况 {cnt=0; num=1;for(i=len-1;i>1;i--)cnt+=(str[i]-'0')*pow(10.0,(len-i-1)*1.0);//分子 for(i=2;i<len;++i)num*=10;//分母 int res=gcd(num,cnt);num/=res;cnt/=res;printf("%d/%d\n",cnt,num);}else//有循环节的情况 {for(i=2;i<len;++i){if(str[i]=='('){j=i-2;//小数点后不循环处的长度 k=i;}if(str[i]==')'){len_r=i-k-1;//循环处的长度 }}cnt=0;num=0;for(i=k+1;i<=len-2;i++) {cnt=cnt*10+(str[i]-'0');//分子 num=num*10+9;//分母 }inter=0;for(i=k-1;i>1;--i)inter+=(str[i]-'0')*pow(10.0,(k-1-i));//求不循环的部分 int res=gcd(num,cnt);num/=res;cnt/=res;cnt+=(inter*num);for(i=0;i<j;++i)//因为数字扩大了10^j倍,分母也要扩大相同的倍数 num*=10;res=gcd(num,cnt);num/=res;cnt/=res; printf("%d/%d\n",cnt,num);}}return 0;
}
hdoj小数转化为分数相关推荐
- java小数转换成百分数_在java中如何把小数转化成百分数
import java.text.NumberFormat; public class Test { //在java中如何把小数转化成百分数 public static void main(Strin ...
- 小数转化成百分数(不限制保留位数)
直接上代码,拷贝拿去用就ok~. 以下代码的特点: 1.直接对小数进行*100+%处理 2.转化结果完全准确,没有转化的精度问题 3.乘100后的小数位数不进行四舍五入,也就是不限制保留小数的位数 如 ...
- es6 日期字符串转日期_小数转成百分数,日期字符串互相转换,这几个SQL问题该如何解决?...
点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 SQL在使用过程中,经常会遇到一些奇奇怪怪的小问题,今天给大家总结一下常见的几个问题该 ...
- 小数点化分数的过程_小数怎么化成分数
0分 0 40.0KB 2017-10-22 小数化成分数.doc[自研课] 旧 知 链 接 新 知 自 研 [自研课本情景图和内容,初步了解小数化分数的1.0.1表示( )分之( ); 2.0.3表 ...
- Pandas列小数转化为百分数
#-*- coding: utf-8 -*-import pandas as pdinputfile = '../data/electricity_data.xls' outputfile = './ ...
- 如何将小数转换成百分数
如何将小数转换成百分数 有朋友在群里问了这个问题,印象中Java没有这方面的函数(百分数转换为小数倒是有一个),而且直接乘以100会得出类似2.5999999999的结果,在网上也没有搜到类似的解决方 ...
- 小数点化分数的过程_小数怎样换算成分数(小数分数转换器)
1)纯小数换算成分数的方法:去掉小数点前的0,将小数作分子,将10?作分母.其中,n为小数的位数.如0.0117=117/100002)带小数换算成分数的方法:带小数是整. 分子为小数点后的数字,分母 ...
- python将小数转换成百分数
处理数据得时候遇到一个小问题,如何用 pandas 将小数转换成百分数? 数据源是这样的,一个名为 "data.xlsx" 的 excel 文件,我需要将 "人员利用率& ...
- Excel如何快速将小数改成分数
今天跟大家分享一下Excel如何快速将小数改成分数 1.打开Excel文件 2.将小数复制一份到分数列并选中 3.点击下图选项(Excel工具箱,百度即可了解详细下载安装信息,本文这里就不做详细解说. ...
- 如何将无限循环小数转化为分数
无限循环小数也是有理数,而有理数是能表示为两个整数之比的数.如何将无限循环小数转化成分数? 以 0.148257148257... 0.148257148257...为例. 它的循环部分为: 1482 ...
最新文章
- Forest Program dfs+tanjar仙人掌
- mysql 优化_常用MySQL优化
- Nature:Gordon组采用甘露糖苷选择性抑制尿路致病性大肠杆菌
- Mpg123源代码详解
- java handlersocket_HandlerSocket java客户端
- Java8 ReentrantLock 源码分析
- linux之通过strings命令查看so里面是否包含****字符串
- 前端学习(2520):环境搭建
- Linux内核crypto子系统的调用逻辑
- python变量和常量_python变量与常量内容:
- Android平台各类恶意软件及病毒概览
- 设计灵感|延展画面的插画Banner设计!
- hadoop 关闭datanode节点时发生异常:no datanode to stop
- 计算机更新过后cad,升级windows10系统后cad无法打开的两种解决方法
- Centos(Linux)系统备份与还原
- 开会没带纸和笔?按下手机这个按钮,一键完成会议纪要
- android7.0 8.1 9.0 10.0 去掉屏幕锁屏(屏幕默认锁屏方式改成无)
- 计算机无法连接蓝牙键盘,电脑如何连接无线键盘_电脑上怎么连接蓝牙键盘-win7之家...
- java: 警告: 源发行版 xx 需要目标发行版 1.10 解决方案
- 人工智能( AI )将如何颠覆项目管理?看看这六大关键领域