正则实现整数运算

不羁岁月 提交于 2020-01-25 16:46:58

const sum = (m, n) => {
    m = Array(m + 1).join('#');
    n = Array(n + 1).join('#');
    return m.replace(/$/, n).length;
};
sum(3, 2); // 5

const diff = (m, n) => {
    m = Array(m + 1).join('#');
    n = Array(n + 1).join('#');
    return m.replace(n, '').length;
};
diff(3, 2); // 1

const product = (m, n) => {
    m = Array(m + 1).join('#');
    n = Array(n + 1).join('#');
    return m.replace(/\#/g, n).length;
};
product(3, 2); // 6

const division = (m, n) => {
    m = Array(m + 1).join('#');
    n = Array(n + 1).join('#');
    return m.replace(new RegExp(n, 'g'), '#').length;
};
division(6, 2); // 3

const remainder = (m, n) => {
    m = Array(m + 1).join('#');
    n = Array(n + 1).join('#');
    return m.replace(new RegExp(n, 'g'), '').length;
};
remainder(7, 2); // 1

平方

const square = (m) => {
    m = Array(m + 1).join('#');
    return m.replace(/./, m).length;
};
square(2); // 4

奇偶性

const isOdd = (m) => {
    m = Array(m + 1).join('#');
    return /^.(.{2})+$/.test(m);
};
isOdd(2); // false

素数

const isPrime = (m) => {
    m = Array(m + 1).join('#');
    return /^(?!(.{2,})\1+$)(?=.{2,}$)/.test(m);
};
isPrime(2); // false

最大公约数

const greatestCommonDivisor = (n, m) => {
  n = Array( n + 1).join('#')
  m = Array( m + 1).join('#') 
  return (`${n}-${m}`).match(/^(.+)\1*-\1+$/)[1].length
}
greatestCommonDivisor(12, 8); // 4
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!