[math][fundamental rulese to devide nume to 11

Функция находит числа в массиве чисел, которые деляться на 11
main
Vasily Guzov 1 year ago
parent 20e719bebb
commit 52227188a5

@ -0,0 +1,3 @@
import { isDevided11 } from "./isDevided11";
export default isDevided11;

@ -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);
});
});

@ -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;
};
Loading…
Cancel
Save