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. 分数到小数相关推荐

  1. int 小数_[LeetCode] 166. 分数到小数

    题目描述 : https://leetcode-cn.com/problems/fraction-to-recurring-decimal/ 题目描述: 给定两个整数,分别表示分数的分子 numera ...

  2. LeetCode 166. 分数到小数(小数除法)

    1. 题目 给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以字符串形式返回小数. 如果小数部分为循环小数,则将循环的部分括在括号内. 示例 1: 输入: num ...

  3. leetcode 166分数到小数

    手动排除特殊情况: 对于一般情况,使用位运算和加减法来计算除法,使用sign记录结果符号:(这部分为leetcode 29题的答案) 使用hashmap来记录循环体出现的开始位置(如果有的话),使用f ...

  4. Leetcode 166. 分数到小数 解题思路及C++实现

    解题思路: 这道题目的核心是怎么找到循环部分:当出现重复的余数时,就会出现循环. 前面需要考虑比较多种情况:除数是否为0:结果的正负:结果的整数部分和小数部分分开求解. 在求解小数部分的时候,需要用到 ...

  5. LeetCode 166. 分数到小数

    思路: 循环体出现的依据是,产生重复的余数,即每次mod*10 后再和 除数b计算出新余数,和之前的比较即可. 先对int型数据进行转换为long 以免int负数最小值化正越界 判定正负数, 结果是否 ...

  6. 2021-10-20:分数到小数。给定两个整数,分别表示分数的分子numerator和分母denominator,以字符串形式返回小数。如果小数部分为循环小数,则将循环的部分括在括号内。输入: num

    2021-10-20:分数到小数.给定两个整数,分别表示分数的分子numerator和分母denominator,以字符串形式返回小数.如果小数部分为循环小数,则将循环的部分括在括号内.输入: num ...

  7. usaco ★Fractions to Decimals 分数化小数

    ★Fractions to Decimals 分数化小数 写一个程序,输入一个形如 N/D 的分数(N 是分子,D 是分母),输出它的小数形式. 如果小数有循环节的话,把循环节放在一对圆括号中.例如, ...

  8. 小数点化分数的过程_分数和小数的互化

    <分数和小数的互化>由会员分享,可在线阅读,更多相关<分数和小数的互化(3页珍藏版)>请在人人文库网上搜索. 1._五__年级__数学____备课组教案教师备课时间课时课题分数 ...

  9. 1439: 2.4.5 Fractions to Decimals 分数化小数

    1439: 2.4.5 Fractions to Decimals 分数化小数 时间限制: 1 Sec  内存限制: 64 MB 提交: 194  解决: 13 题目描述 写一个程序,输入一个形如N/ ...

最新文章

  1. Spring 的微内核与FactoryBean扩展机制--转载
  2. 对模拟int3的探索
  3. Morris post order traversal algorithm
  4. 【洞见】关于PMP个人认识和理解
  5. 机器人学习--Robotics: Estimation and Learning(宾夕法尼亚大学COURSERA课程)
  6. C语言中不检查数组下标是否越界。
  7. laravel5.6 邮件队列database驱动简单demo
  8. http之httpClient工具类
  9. 支付宝支付即时到账接口在ThinkPHP商城中的应用(转载)
  10. 电脑桌面监控软件都能监控到什么?聊天记录?能防止企业员工泄密吗?
  11. 实验五:大数据可视化工具-NodeXL
  12. C. Get an Even String题解(dp)
  13. Linux进阶 | 超详细全方面的Docker Swarm Web集群介绍与部署!
  14. ionic中的slide-box
  15. mysql的设置参数中max_allowed_packet
  16. Android开发实现上一页,下一页显示内容
  17. 2017年12月全球数据库排名:SQL Server 跌势明显,刚获阿里投资的MariaDB表现良好
  18. rk3288 android7.1 横竖屏切换(动画过度)
  19. Hello World | 每个被生活暴击的成年人,都要学会按重启键
  20. 【lua】-- lua编译

热门文章

  1. Java面试题目,java工程师成神之路
  2. linux 创建精灵进程,linux 进程通信之 守护进程
  3. 牛客网笔记之JAVA运算符
  4. elementUi Dialog 对话框使用中数据获取问题
  5. Apache Tomcat 7 Configuration BIO NIO AIO APR ThreadPool
  6. BZOJ4868 Shoi2017期末考试(三分+贪心)
  7. (转) Spring 3 报org.aopalliance.intercept.MethodInterceptor问题解决方法
  8. Facade(外观模式)
  9. webBroser获取cookie
  10. hiho图的联通性(自留)