[LeetCode] 166. Fraction to Recurring Decimal
来源:互联网 发布:养羊软件 编辑:程序博客网 时间:2024/05/29 02:12
Given two integers representing the numerator and denominator of a fraction, return the fraction in string format.
If the fractional part is repeating, enclose the repeating part in parentheses.
For example,
- Given numerator = 1, denominator = 2, return "0.5".
- Given numerator = 2, denominator = 1, return "2".
- Given numerator = 2, denominator = 3, return "0.(6)".
问题描述:
给定两个整数,分别代表一个分数的分子和分母,以字符串形式返回分数。
如果小数部分有循环节,用括号()将其包裹。
举例来说,
- 给定,分子 = 1, 分母 = 2, 返回“0.5”
- 给定,分子 = 2, 分母 = 1, 返回“2”
- 给定,分子 = 2, 分母 = 3, 返回“0.(6)”
if (numerator == 0) return string("0");// 如果分子为0,没有计算的必要了,直接返回0. string rval(((numerator > 0) ^ (denominator > 0)) ? "-" : "");// 判断结果的正负号,然后将分子分母去绝对值 long num = abs((long)numerator), denom = abs((long)denominator); // 注意,这里有正溢出的可能,所以使用long。 rval.append(to_string(num / denom));// 求整数部分. num = num % denom;// 以 4 ÷ 3 = 1.3333为例。 if (num == 0) return rval;// 整数部分 = 4 整数除法 3; unordered_map<long, size_t> repeated; rval += "."; while (1) { num = num * 10;// 对于小数部分的第一位,分子乘以10之后,就会移至整数部分。 if (repeated.count(num)) {// 关键点,如何去判断出现了循环。直接从小数部分去判断,将会比较麻烦。 size_t index = repeated[num];// 小数部分,皆源于num这个变量。如果在循环过程中出现了重复的num值, rval.insert(index, "(");// 那么之后计算出的小数位必然重复。 rval.append(")"); break; } else { repeated[num] = rval.size(); rval += to_string(num / denom); } num = num % denom; if (num == 0) break; } return rval;
阅读全文
0 0
- 166. Fraction to Recurring Decimal Leetcode Python
- Leetcode-166.Fraction to Recurring Decimal
- [Leetcode]166. Fraction to Recurring Decimal @python
- [leetcode] 166. Fraction to Recurring Decimal
- leetcode 166. Fraction to Recurring Decimal
- [LeetCode]166. Fraction to Recurring Decimal
- LeetCode *** 166. Fraction to Recurring Decimal
- LeetCode 166. Fraction to Recurring Decimal
- [LeetCode]problem 166. Fraction to Recurring Decimal
- leetcode-java-166. Fraction to Recurring Decimal
- LeetCode 166. Fraction to Recurring Decimal
- [LeetCode] 166. Fraction to Recurring Decimal
- Leetcode-166. Fraction to Recurring Decimal
- leetcode 166. Fraction to Recurring Decimal
- Leetcode 166. Fraction to Recurring Decimal
- LeetCode 166. Fraction to Recurring Decimal
- Leetcode 166. Fraction to Recurring Decimal
- leetCode 166. Fraction to Recurring Decimal
- python文件操作 API整理
- A Famous Music Composer
- 一个简单却很炫的LoadingView
- CodeM资格赛E 数码 题解
- 关于手机数据库的访问过程中遇到的一个坑
- [LeetCode] 166. Fraction to Recurring Decimal
- oracle创建新用户
- 神经网络基础知识
- 语音识别关键技术公开,人机交互这么做就对了!
- 答案自己写的
- 51nod 1237 最大公约数之和 V3
- 【性能测试】-使用loadrunner对APP进行性能测试
- Image Segmentation(图像分割)综述
- ROS教程(九):使用rosed编辑ROS中的文件