[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