思路:

循环体出现的依据是,产生重复的余数,即每次mod*10 后再和 除数b计算出新余数,和之前的比较即可。

先对int型数据进行转换为long 以免int负数最小值化正越界

判定正负数, 结果是否加负号

求余数,若余数为0则直接返回

余数不为0,加入到map中,供下次检测。

每次将余数 和 对应sb的位置  存到map中

将mod*10 和 b计算出来的商追加到sb中,

并mod*10  %  b再次计算新余数。循环直到mod==0

public static String fractionToDecimal(int numerator, int denominator) {if(numerator==0)return "0";//若被除数为0直接返回long a = numerator;//都转换为long 以免Integer.MIN_VALUE 转换为正数时 越界long b = denominator;boolean z = true;//判断是否是正数if(a < 0){z = !z;a=-a;}if(b<0){//判断是否是正数z=!z;b=-b;}StringBuffer sb = new StringBuffer();//存储结果if(!z){//若为负数,则追加 负号sb.append("-");}sb.append(a/b);//先把商的整数部分追加到sb中if(a%b==0){//若没有余数,则直接返回return sb.toString();}long mod = a%b;//余数sb.append(".");//最佳小数点HashMap<Long,Integer> map = new HashMap<>();//键为 每次的余数   值为  对应的sb位置while (mod != 0){if(map.containsKey(mod)){//若包含余数key  sb.insert(map.get(mod),"(");//将( 插入到sb对应位置sb.append(")");//后面追加 ) return sb.toString();//返回}map.put(mod,sb.length()); // 将新的余数 放入map中mod*=10; // 余数*10long shang = mod / b;//将商追加到sb末尾sb.append(shang);mod%=b; //计算新余数}return sb.toString();}

LeetCode 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. 166. 分数到小数

    166. 分数到小数 给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以 字符串形式返回小数 . 如果小数部分为循环小数,则将循环的部分括在括号内. 如果存在多个 ...

  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. python从小到大的顺序输出-python从小到大的顺序输出
  2. php+签到+二进制方式,PHP开发中如何实现二进制搜索?
  3. 【测试点分析】1088 三人行 (20分)_29行代码AC
  4. 【VB测绘程序设计】第一章 VB测绘程序设计概述
  5. 【期望】路径长度(金牌导航 期望-1)
  6. Eclipse集成svn后出现Failed to load JavaHL Library的解决办法
  7. SpringBoot中使用Hibernate Validator校验工具类
  8. RabbitMQ学习笔记-RabbitMQ的运转流程
  9. mysql 类似 oracle connect by_mysql实现层级查询,相似oracle里的connect by prior
  10. python多线程刷网站流量(含ip代理池文档,可制作成exe文件挂服务器代刷)
  11. 关于计算机取代学校的英语作文,关于网络教室将取代传统的教室英语作文
  12. safari浏览器关于时间日期格式的兼容问题
  13. VASP+Phono3py计算声子linewidth
  14. 长时间戴耳机对耳朵的伤害多大?这几点一定要牢记
  15. 11.03 CSS的基本使用
  16. 一个计算机游戏机,我想入手一台游戏主机,ps、xbox、任天堂相比,哪个好?
  17. 【转载】太厉害了,终于有人能把TCP/IP 协议讲的明明白白了
  18. 【水果识别】柑橘质量检测及分级系统【含GUI Matlab源码 738期】
  19. ES GEO地理空间查询java版
  20. 推荐一个VS2010下的智能联想插件,比IntellSense更给力! http://bbs.itheima.com/thread-53922-1-1.html (出处: 黑马程序员IT技术论坛)

热门文章

  1. python实现多表格合并_python 如何把两个表格数据,合并为一个呢?
  2. LabVIEW自带函数实现SQL Server操作(上)
  3. JavaScript——面向对象之继承(原型对象)与多态(重载、重写)
  4. vue 实现任意组件之间的通信
  5. php gif 切成一帧,GIF动画帧提取器 如何截取gif的每一帧图片
  6. ASP.NET中密码保护,MD5和SHA1算法的使用
  7. Java并发包基石-AQS详解
  8. Hadoop真的适合你吗?
  9. 学习.NET是因为热爱 or 兴趣 or 挣钱?
  10. python3.4学习笔记(二十一) python实现指定字符串补全空格、前面填充0的方法