在 JavaScript 中查找循环小数部分的长度
问题
我们需要编写一个 JavaScript 函数,该函数接收一个数字 num,作为第一个也是唯一的一个参数
我们的函数应该做两件事
- 首先,它应该检查该数字是不是和 10 互质,如果不是,我们应该返回 -1(任何其他数字的互质数字,它们唯一的公因子为 1)。
- 如果该数字和 10 互质,那么我们应该返回小数部分的长度,该小数部分在那个数字除以 1 时会重复出现。
例如,如果函数的输入为 -
输入
const num = 123;
输出
const output = 5;
输出说明
由于数字 123 肯定与 10 互质
当我们将 1 除以 123 时,我们得到 -
1 / 123 = 0.008130081300813…
这清楚地表明小数部分 00813 无限地重复,并且其长度为 5,因此我们的输出是 5。
范例
以下是代码 -
const num = 123;
const findRepeatingPart = (num = 1) => {
if(num % 2 === 0 || num % 5 === 0){
return -1;
} else {
let res = 10 % num, count = 1;
while(res != 1){
res = res * 10 % num;
count++;
};
return count;
}
};
console.log(findRepeatingPart(num));输出
5
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP