166. 分数到小数
166. 分数到小数
给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以 字符串形式返回小数 。
如果小数部分为循环小数,则将循环的部分括在括号内。
如果存在多个答案,只需返回 任意一个 。
对于所有给定的输入,保证 答案字符串的长度小于 104 。
- 示例 1:
输入:numerator = 1, denominator = 2
输出:“0.5”
- 示例 2:
输入:numerator = 2, denominator = 1
输出:“2”
- 示例 3:
输入:numerator = 2, denominator = 3
输出:“0.(6)”
- 示例 4:
输入:numerator = 4, denominator = 333
输出:“0.(012)”
- 示例 5:
输入:numerator = 1, denominator = 5
输出:“0.2”
解题思路
模拟长除法,使用map记录余数出现的位置,一旦出现相同余数,说明后面就是循环部分了,就可以添加括号了。
- 最小负数转为正数的时候会溢出,因此要使用long去接
代码
class Solution {public String fractionToDecimal(int num, int de) {if(num==0) return "0";StringBuilder sb=new StringBuilder();if(num<0^de<0)sb.append('-');long numL=Math.abs(Long.valueOf(num));long deL=Math.abs(Long.valueOf(de));sb.append(numL/deL);long re=numL%deL;if(re==0)return sb.toString();sb.append('.');HashMap<Long,Integer> map=new HashMap<>();while(re!=0){if(map.containsKey(re)){sb.insert(map.get(re), "(");sb.append(')');return sb.toString();}map.put(re,sb.length());re*=10;sb.append(String.valueOf(re/deL));re=re%de;}return sb.toString();}
}
166. 分数到小数相关推荐
- int 小数_[LeetCode] 166. 分数到小数
题目描述 : https://leetcode-cn.com/problems/fraction-to-recurring-decimal/ 题目描述: 给定两个整数,分别表示分数的分子 numera ...
- LeetCode 166. 分数到小数(小数除法)
1. 题目 给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以字符串形式返回小数. 如果小数部分为循环小数,则将循环的部分括在括号内. 示例 1: 输入: num ...
- leetcode 166分数到小数
手动排除特殊情况: 对于一般情况,使用位运算和加减法来计算除法,使用sign记录结果符号:(这部分为leetcode 29题的答案) 使用hashmap来记录循环体出现的开始位置(如果有的话),使用f ...
- Leetcode 166. 分数到小数 解题思路及C++实现
解题思路: 这道题目的核心是怎么找到循环部分:当出现重复的余数时,就会出现循环. 前面需要考虑比较多种情况:除数是否为0:结果的正负:结果的整数部分和小数部分分开求解. 在求解小数部分的时候,需要用到 ...
- LeetCode 166. 分数到小数
思路: 循环体出现的依据是,产生重复的余数,即每次mod*10 后再和 除数b计算出新余数,和之前的比较即可. 先对int型数据进行转换为long 以免int负数最小值化正越界 判定正负数, 结果是否 ...
- 2021-10-20:分数到小数。给定两个整数,分别表示分数的分子numerator和分母denominator,以字符串形式返回小数。如果小数部分为循环小数,则将循环的部分括在括号内。输入: num
2021-10-20:分数到小数.给定两个整数,分别表示分数的分子numerator和分母denominator,以字符串形式返回小数.如果小数部分为循环小数,则将循环的部分括在括号内.输入: num ...
- usaco ★Fractions to Decimals 分数化小数
★Fractions to Decimals 分数化小数 写一个程序,输入一个形如 N/D 的分数(N 是分子,D 是分母),输出它的小数形式. 如果小数有循环节的话,把循环节放在一对圆括号中.例如, ...
- 小数点化分数的过程_分数和小数的互化
<分数和小数的互化>由会员分享,可在线阅读,更多相关<分数和小数的互化(3页珍藏版)>请在人人文库网上搜索. 1._五__年级__数学____备课组教案教师备课时间课时课题分数 ...
- 1439: 2.4.5 Fractions to Decimals 分数化小数
1439: 2.4.5 Fractions to Decimals 分数化小数 时间限制: 1 Sec 内存限制: 64 MB 提交: 194 解决: 13 题目描述 写一个程序,输入一个形如N/ ...
最新文章
- Spring 的微内核与FactoryBean扩展机制--转载
- 对模拟int3的探索
- Morris post order traversal algorithm
- 【洞见】关于PMP个人认识和理解
- 机器人学习--Robotics: Estimation and Learning(宾夕法尼亚大学COURSERA课程)
- C语言中不检查数组下标是否越界。
- laravel5.6 邮件队列database驱动简单demo
- http之httpClient工具类
- 支付宝支付即时到账接口在ThinkPHP商城中的应用(转载)
- 电脑桌面监控软件都能监控到什么?聊天记录?能防止企业员工泄密吗?
- 实验五:大数据可视化工具-NodeXL
- C. Get an Even String题解(dp)
- Linux进阶 | 超详细全方面的Docker Swarm Web集群介绍与部署!
- ionic中的slide-box
- mysql的设置参数中max_allowed_packet
- Android开发实现上一页,下一页显示内容
- 2017年12月全球数据库排名:SQL Server 跌势明显,刚获阿里投资的MariaDB表现良好
- rk3288 android7.1 横竖屏切换(动画过度)
- Hello World | 每个被生活暴击的成年人,都要学会按重启键
- 【lua】-- lua编译
热门文章
- Java面试题目,java工程师成神之路
- linux 创建精灵进程,linux 进程通信之 守护进程
- 牛客网笔记之JAVA运算符
- elementUi Dialog 对话框使用中数据获取问题
- Apache Tomcat 7 Configuration BIO NIO AIO APR ThreadPool
- BZOJ4868 Shoi2017期末考试(三分+贪心)
- (转) Spring 3 报org.aopalliance.intercept.MethodInterceptor问题解决方法
- Facade(外观模式)
- webBroser获取cookie
- hiho图的联通性(自留)