题目背景

non习惯将分数化成小数,但在数学中要以分数形式写,不能化成小数

因此non找到了会编程的你,帮助他将小数化回分数

题目描述

给出一个小数,将它化成假分数的形式

小数的类型有2种:(不考虑无限不循环小数)

普通小数

循环小数(会给出循环节)

(循环节用( )表示)

输入输出格式

输入格式:

一个小数n

输出格式:

输出这个小数n转化成最简分数的形式

输入输出样例

输入样例#1: 复制

1.32
输出样例#1: 复制

33/25
输入样例#2: 复制

1.(3)
输出样例#2: 复制

4/3
输入样例#3: 复制

1.0
输出样例#3: 复制

1/1

说明

输入小数的数据范围

0至1000

对于50%的数据保证没有循环节

对于20%的数据需要读入优化

思路:模拟即可。

#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
char s[];
int l,r,num,num1,num2,num3;
int gcd(int x,int y){
return x==?y:gcd(y%x,x);
}
int pow(int a,int b){
int s=;
for(int i=;i<=b;i++) s*=a;
return s;
}
void work1(){
int len=strlen(s),ans1,ans2;
for(int i=len-;i>=;i--){
if(s[i]>=''&&s[i]<=''&&(s[i+]==')'||r)){
num1+=pow(,r)*(s[i]-'');
r++;
}
if(s[i]>=''&&s[i]<=''&&(s[i+]=='('||l||s[i+]=='.')){
num2+=pow(,l)*(s[i]-'');
l++;
}
if(s[i]=='.'){ ans1=l;ans2=r; }
}
l=num1-num2;r=pow(,ans2)-pow(,ans1);
int GCD=gcd(l,r);
printf("%d/%d",l/GCD,r/GCD);
exit();
}
void work2(){
int len=strlen(s);
for(int i=len-;i>=;i--){
if(s[i]>=''&&s[i]<=''){
num3+=pow(,num)*(s[i]-'');
num++;
}
if(s[i]=='.') num1=num;
}
l=num3;r=pow(,num1);
int GCD=gcd(l,r);
printf("%d/%d",l/GCD,r/GCD);
exit();
}
int main(){
cin>>s;
int len=strlen(s);
for(int i=;i<len;i++)
if(s[i]=='('){ work1();break; }
work2();
}

洛谷 P2399 non hates math的更多相关文章

  1. P2399 non hates math

    P2399 non hates math将分数化成小数的模拟题,把循环减掉就可以了.1.1(234)*10^4==11234.234*10^1==11.2349999*(1.1(234))==1122 ...

  2. bzoj2154||洛谷P1829 Crash的数字表格&&JZPTAB && bzoj3309 DZY Loves Math

    bzoj2154||洛谷P1829 https://www.lydsy.com/JudgeOnline/problem.php?id=2154 https://www.luogu.org/proble ...

  3. USACO Section 1.3 题解 (洛谷OJ P1209 P1444 P3650 P2693)

    usaco ch1.4 sort(d , d + c, [](int a, int b) -> bool { return a > b; }); 生成与过滤 generator&& ...

  4. 【洛谷4172】 [WC2006]水管局长(LCT)

    传送门 洛谷 BZOJ Solution 如果不需要动态的话,那就是一个裸的最小生成树上的最大边权对吧. 现在动态了的话,把这个过程反着来,就是加边对吧. 现在问题变成了怎么动态维护加边的最小生成树, ...

  5. 洛谷P1244 青蛙过河 DP/思路

    又是一道奇奇怪怪的DP(其实是思路题). 原文戳>>https://www.luogu.org/problem/show?pid=1244<< 这题的意思给的挺模糊,需要一定的 ...

  6. [洛谷P4723]【模板】线性递推

    题目大意:求一个满足$k$阶齐次线性递推数列$a_i$的第$n$项. 即:$a_n=\sum\limits_{i=1}^{k}f_i \times a_{n-i}$ 题解:线性齐次递推,先见洛谷题解, ...

  7. (洛谷 P1429 平面最近点对(加强版) || 洛谷 P1257 || Quoit Design HDU - 1007 ) && Raid POJ - 3714

    这个讲的好: https://phoenixzhao.github.io/%E6%B1%82%E6%9C%80%E8%BF%91%E5%AF%B9%E7%9A%84%E4%B8%89%E7%A7%8D ...

  8. 洛谷 P2056 [ZJOI2007]捉迷藏 || bzoj 1095: [ZJOI2007]Hide 捉迷藏 || 洛谷 P4115 Qtree4 || SP2666 QTREE4 - Query on a tree IV

    意识到一点:在进行点分治时,每一个点都会作为某一级重心出现,且任意一点只作为重心恰好一次.因此原树上任意一个节点都会出现在点分树上,且是恰好一次 https://www.cnblogs.com/zzq ...

  9. 洛谷 P1903 BZOJ 2120 清橙 A1274【模板】分块/带修改莫队(数颜色)(周奕超)

    试题来源 2011中国国家集训队命题答辩 题目描述 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔 ...

随机推荐

  1. 深入理解android view 生命周期

    作为自定义 view 的基础,如果不了解Android  view 的生命周期 , 那么你将会在后期的维护中发现这样那样的问题 ....... 做过一段时间android 开发的同学都知道,一般 on ...

  2. B1786 [Ahoi2008]Pair 配对 逆序对+dp

    这个题有点意思,一开始没想到用dp,没啥思路,后来看题解才恍然大悟:k才1~100,直接枚举每个-1点的k取值进行dp就行了.先预处理出来sz[i][j]  i左边的比j大的数,lz[i][j]  i ...

  3. JS判断浏览器类型和详细区分IE各版本浏览器

    今天用到JS判断浏览器类型,于是就系统整理了一下,便于后期使用. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ...

  4. 浅讲ajax

    1.ajax入门案例 1.1 搭建Web环境 ajax对于各位来说,应该都不陌生,正因为ajax的产生,导致前台页面和服务器之间的数据传输变得非常容易,同时还可以实现页面的局部刷新.通过在后台与服务器 ...

  5. ccf 201803-4 棋局评估 (对抗搜索)

    棋局评估 问题描述 Alice和Bob正在玩井字棋游戏. 井字棋游戏的规则很简单:两人轮流往3*3的棋盘中放棋子,Alice放的是“X”,Bob放的是“O”,Alice执先.当同一种棋子占据一行.一列 ...

  6. 5.29clone项目地址

  7. Java 中静态变量和实例变量区别

    Java 中静态变量和实例变量区别 静态变量属于类,该类不生产对象,通过类名就可以调用静态变量. 实例变量属于该类的对象,必须产生该类对象,才能调用实例变量. 在程序运行时的区别: 实例变量属于某个对 ...

  8. 利用 html+css 画同心圆(concentric circles)——绝对布局与相对布局

    一.css 绘制圆 #circle { width: 300px; height: 300px; background-color: #000000; border-radius: 300px; } ...

  9. Android 应用安装成功之后删除apk文件

    问题: 在应用开发中遇到需要这样的需求:在用户下载我们的应用安装之后删除安装包. 解决: android会在每个外界操作APK的动作之后发出系统级别的广播,过滤器名称: android.intent. ...

  10. Embedded之Makefile

    1 Header files The header files are empty, so you can create them with touch: $ touch a.h $ touch b. ...