[math][fundamental rulese to devide nume to 11
Функция находит числа в массиве чисел, которые деляться на 11main
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…
Reference in New Issue