(每日一题 day 002 - 模拟) 166. 分数到小数
文章目录
- 题目
- 题解
题目
题链:166. 分数到小数
题解
使用小学数学的长除法模拟解决,分三步走:
- 判断是否可以直接整除,可以整除直接相除返回结果即可
- 判断符号是否一正一负,是的话转为正数进行相除、并且结果记得添上负号。
- 小数方面的处理、使用一个hashmap判断是否存在循环小数、存在则加上括号、使用stringbulider的insert在出现重复余数的下标插入。没有最后会直接得到小数结果。
需要注意的是在求余那一块可能会出现整形溢出的情况、所以改成long进行运算。
class Solution {public String fractionToDecimal(int numerator, int denominator) {long a = numerator,b = denominator;if (a%b == 0){return String.valueOf(a/b);}StringBuilder sb = new StringBuilder();if (a*b < 0){sb.append('-');}a = Math.abs(a);b = Math.abs(b);sb.append(a/b);sb.append('.');long rem = a%b;StringBuilder di = new StringBuilder();HashMap<Long,Integer> map = new HashMap<>();int i = 0;while (rem != 0 && !map.containsKey(rem)){map.put(rem,i++);rem *= 10;di.append(rem/b);rem = rem%b;}if (rem != 0){di.insert(map.get(rem),"(");di.append(')');}return sb.append(di.toString()).toString();}
}
(每日一题 day 002 - 模拟) 166. 分数到小数相关推荐
- 166. 分数到小数
166. 分数到小数 给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以 字符串形式返回小数 . 如果小数部分为循环小数,则将循环的部分括在括号内. 如果存在多个 ...
- linux命令dd创建虚拟硬盘,每日一题.PYTHON如何模拟LINUX的dd命令快速创建大文件?...
原文数据: 无 具体要求: 1. 模拟Linux的dd命令快速创建大文件 代码实现: # -*- coding: utf-8 -*- """ # # Authors: l ...
- 每日一题---比赛安排---模拟
题目:比赛安排 思路: 直接模拟选择情况,每天一个队只能参加一场比赛,用变量记录,隔天还原变量: 从小的队开始比,循环开始,满足条件的打比赛: 代码如下: #include<bits/stdc ...
- int 小数_[LeetCode] 166. 分数到小数
题目描述 : https://leetcode-cn.com/problems/fraction-to-recurring-decimal/ 题目描述: 给定两个整数,分别表示分数的分子 numera ...
- leetcode 166分数到小数
手动排除特殊情况: 对于一般情况,使用位运算和加减法来计算除法,使用sign记录结果符号:(这部分为leetcode 29题的答案) 使用hashmap来记录循环体出现的开始位置(如果有的话),使用f ...
- LeetCode 166. 分数到小数(小数除法)
1. 题目 给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以字符串形式返回小数. 如果小数部分为循环小数,则将循环的部分括在括号内. 示例 1: 输入: num ...
- Leetcode 166. 分数到小数 解题思路及C++实现
解题思路: 这道题目的核心是怎么找到循环部分:当出现重复的余数时,就会出现循环. 前面需要考虑比较多种情况:除数是否为0:结果的正负:结果的整数部分和小数部分分开求解. 在求解小数部分的时候,需要用到 ...
- LeetCode 166. 分数到小数
思路: 循环体出现的依据是,产生重复的余数,即每次mod*10 后再和 除数b计算出新余数,和之前的比较即可. 先对int型数据进行转换为long 以免int负数最小值化正越界 判定正负数, 结果是否 ...
- LeetCode 每日一题 2021/9/27-2021/10/3
记录了初步解题思路 以及本地实现代码:并不一定为最优 也希望大家能一起探讨 一起进步 目录 9/27 639. 解码方法 II 9/28 437. 路径总和 III 9/29 517. 超级洗衣机 9 ...
- PMP模拟试题每日5题(5月7日)
摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.产品开发团队采用敏捷开发 ...
最新文章
- iOS动画系列之九:实现点赞的动画及播放起伏指示器
- 十大编程算法助程序员走上大神路
- JSF----事件处理---动作事件
- 使用 frida+dexdump对apk脱壳
- Ztree-JQuery树插件的学习(未完)
- MIT正式发布编程语言Julia 1.0:Python、R、C++三合一
- css 动画使用_如何在CSS中使用动画
- python标准库(一)
- git-工作区与暂存区
- Kali渗透测试工具库(二)beef--Web浏览器攻击框架
- CMake语法及CMakeList.txt简单使用
- 机器学习课程笔记【十三】- 独立成分分析
- LINUX SHELL获得CPU核心(线程)个数
- Qt开发经验小技巧176-180
- 学习软件技术的五大技巧
- 电脑上的记事本便签纸怎么用
- xp 开机画面【欢迎使用】四个字更改方法
- 软件项目管理——文档
- 每日任务:1276. 不浪费原料的汉堡制作方案
- 深度学习入门书籍和资源