diff --git a/lib/isDevided11/index.ts b/lib/isDevided11/index.ts new file mode 100644 index 0000000..b1e41ed --- /dev/null +++ b/lib/isDevided11/index.ts @@ -0,0 +1,3 @@ +import { isDevided11 } from "./isDevided11"; + +export default isDevided11; diff --git a/lib/isDevided11/isDevided11.test.ts b/lib/isDevided11/isDevided11.test.ts new file mode 100644 index 0000000..43c5767 --- /dev/null +++ b/lib/isDevided11/isDevided11.test.ts @@ -0,0 +1,17 @@ +import { describe, it, expect } from "vitest"; +import { isDevided11 } from "./isDevided11.ts"; + +describe("isDevided11", () => { + + const res = [264, 462]; + + + it("isDevided11 [1, 2, 4, 6 ]", () => { + expect(isDevided11([1, 2, 4, 6]).length).toEqual(2); + }); + + it("isDevided11 [1, 2, 4, 6 ] result is equale [264, 462]", () => { + expect(isDevided11([1, 2, 4, 6])).toEqual(res); + }); + +}); diff --git a/lib/isDevided11/isDevided11.ts b/lib/isDevided11/isDevided11.ts new file mode 100644 index 0000000..2f78d32 --- /dev/null +++ b/lib/isDevided11/isDevided11.ts @@ -0,0 +1,39 @@ +export function isDevided11(numbers: number[]): number[] { + const res: number[] = []; + let L = 1; + let R = numbers.length - 1 + let M = 0; + + while (L <= numbers.length - 1 || R >= 0) { + const L_NUM = numbers[L]; + const R_NUM = numbers[R]; + + while (M <= numbers.length - 1) { + const M_NUM = numbers[M]; + + if (((L_NUM + R_NUM) - M_NUM) % 11 === 0) { + res.push(+`${L_NUM}${M_NUM}${R_NUM}`) + res.push(+`${R_NUM}${M_NUM}${L_NUM}`) + } + + if (((L_NUM + M_NUM) - R_NUM) % 11 === 0) { + res.push(+`${L_NUM}${R_NUM}${M_NUM}`) + res.push(+`${M_NUM}${R_NUM}${L_NUM}`) + } + + if (((R_NUM + M_NUM) - L_NUM) % 11 === 0) { + res.push(+`${R_NUM}${L_NUM}${M_NUM}`) + res.push(+`${M_NUM}${L_NUM}${R_NUM}`) + } + + M++ + } + + L++ + R-- + + } + + + return res; +};