deno.land / x / masx200_leetcode_test@10.6.5 / fraction-to-recurring-decimal / index.ts

نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import { absBigint } from "./abs_bigint.ts";
export default function fractionToDecimal( numerator: number, denominator: number,): string { let a = BigInt(numerator); let b = BigInt(denominator);
if (a % b === 0n) return String(a / b);
const sb: string[] = []; if (a * b < 0) sb.push("-"); a = absBigint(a); b = absBigint(b); sb.push(...(String(a / b) + ".")); a %= b; const map = new Map<bigint, number>();
while (a !== 0n) { map.set(a, sb.length); a *= 10n; sb.push(...String(a / b)); a %= b; const u = map.get(a); if (typeof u === "number") { return sb.slice(0, u).join("") + `(${sb.slice(u).join("")})`; } } return sb.join("");}
masx200_leetcode_test

Version Info

Tagged at
a year ago