Daily-Interview-Question
Daily-Interview-Question copied to clipboard
第 102 题:不用加减乘除运算符,求整数的7倍
可以使用三类方式:位运算加法、JS hack、进制转换。实现方式分别如下:
/* -- 位运算 -- */
// 先定义位运算加法
function bitAdd(m, n){
while(m){
[m, n] = [(m & n) << 1, m ^ n];
}
return n;
}
// 位运算实现方式 1 - 循环累加7次
let multiply7_bo_1 = (num)=>
{
let sum = 0,counter = new Array(7); // 得到 [empty × 7]
while(counter.length){
sum = bitAdd(sum, num);
counter.shift();
}
return sum;
}
// 位运算实现方式 2 - 二进制进3位(乘以8)后,加自己的补码(乘以-1)
let multiply7_bo_2 = (num) => bitAdd(num << 3, -num) ;
/* -- JS hack -- */
// hack 方式 1 - 利用 Function 的构造器 & 乘号的字节码
let multiply7_hack_1 = (num) =>
new Function(["return ",num,String.fromCharCode(42),"7"].join(""))();
// hack 方式 2 - 利用 eval 执行器 & 乘号的字节码
let multiply7_hack_2 = (num) =>
eval([num,String.fromCharCode(42),"7"].join(""));
// hack 方式 3 - 利用 SetTimeout 的参数 & 乘号的字节码
setTimeout(["window.multiply7_hack_3=(num)=>(7",String.fromCharCode(42),"num)"].join(""))
/* -- 进制转换 -- */
// 进制转换方式 - 利用 toString 转为七进制整数;然后末尾补0(左移一位)后通过 parseInt 转回十进制
let multiply7_base7 =
(num)=>parseInt([num.toString(7),'0'].join(''),7);
贴一个自己之前发布过的这个题的解法和思路逻辑: https://github.com/frontend9/fe9-library/issues/272
const sevenTimes = num => eval(new Array(7).fill(num).join('+'))
sevenTimes(10) // 70
涨姿势
const sevenTimes = num => new Array(7).fill(num).reduce((p,v)=> p+v) sevenTimes(10) // 70
you used + , which is not allowed.
function getNum(x){ let a = Array(x << 3).fill(1);a.splice(0,x); return a.length; } console.log(getNum(2)) // 14
const sevenTimes = num => new Array(7).fill(num).reduce((p,v)=> p+v) sevenTimes(10) // 70you used + , which is not allowed.
You are right...
仅供娱乐
function nTimes(m, n) {
const con = document.createElement('div');
const child = document.createElement('div');
con.style.setProperty('width', `${m}px`);
child.style.setProperty('width', `${n}00%`);
con.appendChild(child);
document.body.appendChild(con);
setTimeout(() => document.body.removeChild(con));
return child.clientWidth;
}
nTimes(10, 7); // 70
''.padEnd(5, 0).replace(/0/g, ''.padEnd(7, 0)).length // 5 * 7 = 35
正则实现数学运算
var multip0 = num => ''.padEnd(num).repeat(7).length
var multip1 = num => [0, 7, 14, /*我有一个绝佳的想法, 可惜这里地方太小写不下...*/][num]
var multip2 = num =>new Array(num).fill().map(()=> new Array(7).fill()).flat().length
function getNum(num, count) { return eval(new Array(count).fill(num).join('+')); } getNum(7,3) // 21 getNum(7,4) // 28 借鉴楼层 比较高明. 学习了~
虽然这样做没什么技术含量,但至少符合题意吧哈哈 function(x){ let arr = Array(x) let resultArr = [...arr,...arr,...arr,...arr,...arr,...arr,...arr] return resultArr.length }
秀儿 是你吗
function multiple(data){ var v = new Array(Number(data.num)+1).join('*') var mul= data.multiple-1 console.log(v,mul) return RegExp('^((.)(\2{'+mul+'}))+$','gm').test(v) } multiple({ multiple:7, num:'77' })
function bit_add(a, b){
var carry = a & b;
var noCarrySum = a ^ b;
if(carry)
return bit_add(carry << 1, noCarrySum);
else
return noCarrySum;
}
function bit_multiply7(a){
return bit_add(a<<2, bit_add(a<<1, a));
}
bit_multiply7(999999)
虽然这样做没什么技术含量,但至少符合题意吧哈哈 function(x){ let arr = Array(x) let resultArr = [...arr,...arr,...arr,...arr,...arr,...arr,...arr] return resultArr.length }
鬼才哈哈
var ab = []; function seven(n,ten){ if(!n){ ten&&ten==1&&ab.unshift(1); ten&&ten==2&&ab.unshift(2); ten&&ten==3&&ab.unshift(3); ten&&ten==4&&ab.unshift(4); ten&&ten==5&&ab.unshift(5); ten&&ten==6&&ab.unshift(6); } if(n[n.length-1]==0){ !ten&&ab.unshift(0)&&seven(n.slice(0,n.length-1)); ten&&ten==1&&ab.unshift(1)&&seven(n.slice(0,n.length-1)); ten&&ten==2&&ab.unshift(2)&&seven(n.slice(0,n.length-1)); ten&&ten==3&&ab.unshift(3)&&seven(n.slice(0,n.length-1)); ten&&ten==4&&ab.unshift(4)&&seven(n.slice(0,n.length-1)); ten&&ten==5&&ab.unshift(5)&&seven(n.slice(0,n.length-1)); ten&&ten==6&&ab.unshift(6)&&seven(n.slice(0,n.length-1)); }else if(n[n.length-1]==1){ !ten&&ab.unshift(7)&&seven(n.slice(0,n.length-1)); ten&&ten==1&&ab.unshift(8)&&seven(n.slice(0,n.length-1)); ten&&ten==2&&ab.unshift(9)&&seven(n.slice(0,n.length-1)); ten&&ten==3&&ab.unshift(0)&&seven(n.slice(0,n.length-1),1); ten&&ten==4&&ab.unshift(1)&&seven(n.slice(0,n.length-1),1); ten&&ten==5&&ab.unshift(2)&&seven(n.slice(0,n.length-1),1); ten&&ten==6&&ab.unshift(3)&&seven(n.slice(0,n.length-1),1); }else if(n[n.length-1]==2){ !ten&&ab.unshift(4)&&seven(n.slice(0,n.length-1),1); ten&&ten==1&&ab.unshift(5)&&seven(n.slice(0,n.length-1),1); ten&&ten==2&&ab.unshift(6)&&seven(n.slice(0,n.length-1),1); ten&&ten==3&&ab.unshift(7)&&seven(n.slice(0,n.length-1),1); ten&&ten==4&&ab.unshift(8)&&seven(n.slice(0,n.length-1),1); ten&&ten==5&&ab.unshift(9)&&seven(n.slice(0,n.length-1),1); ten&&ten==6&&ab.unshift(0)&&seven(n.slice(0,n.length-1),2); }else if(n[n.length-1]==3){ !ten&&ab.unshift(1)&&seven(n.slice(0,n.length-1),2); ten&&ten==1&&ab.unshift(2)&&seven(n.slice(0,n.length-1),2); ten&&ten==2&&ab.unshift(3)&&seven(n.slice(0,n.length-1),2); ten&&ten==3&&ab.unshift(4)&&seven(n.slice(0,n.length-1),2); ten&&ten==4&&ab.unshift(5)&&seven(n.slice(0,n.length-1),2); ten&&ten==5&&ab.unshift(6)&&seven(n.slice(0,n.length-1),2); ten&&ten==6&&ab.unshift(7)&&seven(n.slice(0,n.length-1),2); }else if(n[n.length-1]==4){ !ten&&ab.unshift(8)&&seven(n.slice(0,n.length-1),2); ten&&ten==1&&ab.unshift(9)&&seven(n.slice(0,n.length-1),2); ten&&ten==2&&ab.unshift(0)&&seven(n.slice(0,n.length-1),3); ten&&ten==3&&ab.unshift(1)&&seven(n.slice(0,n.length-1),3); ten&&ten==4&&ab.unshift(2)&&seven(n.slice(0,n.length-1),3); ten&&ten==5&&ab.unshift(3)&&seven(n.slice(0,n.length-1),3); ten&&ten==6&&ab.unshift(4)&&seven(n.slice(0,n.length-1),3); } } 写不下去了,我感觉在下头发都在摇曳了,胸口憋了一口闷气。
const sevenTimes = num => eval(new Array(7).fill(num).join('+')) sevenTimes(10) // 70
- 加号字符串不算加号运算符,那我是不是可以。。。eval(
${num}*7)
左移3位 相当于乘8 然后再减去自己 不就是7倍了吗 减法的移位运算可以转换加法的移位运算
整数: n
背景知识: -n = ~(n-1) = ~n+1
转换方程
n*7 ==> n<<3-n ==> add(n<<3, ~n+1) ==> add(n<<3, add(~n, 1))
function add(m,n){
return n?add(m^n, (m&n)<<1):m;
}
add(n<<3, add(~n, 1))
14
通用场景
不用加减乘除运算符,求整数n的m倍
这个就不难了 哈哈
相当于7xn个位数
const getSum = (x) => Array.from({ length: 7 }).fill(Array.from({ length: x }, item => 1).join('')).join('').length;
function(n){ Math.abs(~eval([n<<3,~n].join(""))) } 第二个答案,一长串的是第一个答案,还有个构想是用Math.random(),但没写出来。建议写个接口,然后大数据爬出答案,return出来。
function qq(n){ var a = n; for(var i=0;i<6;i=Math.abs(~i)){ for(var j=0;j<a;j=Math.abs(~j)){ n = Math.abs(~n) } } console.log(n); }
所有的答案这个最优秀: @huangyanyang
function Sum(x){
let arr = Array(x)
let resultArr = [...arr,...arr,...arr,...arr,...arr,...arr,...arr]
return resultArr.length
}
突然觉得这些好有意思✈😄 学到了🙆
function getSevenNum(n = 0) { return (n << 3) - n }
测试机😝
getSevenNum() // 0
getSevenNum(1) // 7
getSevenNum(11) //77
突然觉得这些好有意思✈ 学到了🙆
function getSevenNum(n = 0) { return (n << 3) - n }测试机
getSevenNum() // 0 getSevenNum(1) // 7 getSevenNum(11) //77
不能出现加减乘除,如果你这可以,不如直接 7*n ....
突然觉得这些好有意思✈ 学到了🙆
function getSevenNum(n = 0) { return (n << 3) - n }测试机
getSevenNum() // 0 getSevenNum(1) // 7 getSevenNum(11) //77不能出现加减乘除,如果你这可以,不如直接 7*n .... 好的 没注意 抱歉
var ab = []; function seven(n,ten){ if(!n){ ten&&ten==1&&ab.unshift(1); ten&&ten==2&&ab.unshift(2); ten&&ten==3&&ab.unshift(3); ten&&ten==4&&ab.unshift(4); ten&&ten==5&&ab.unshift(5); ten&&ten==6&&ab.unshift(6); } if(n[n.length-1]==0){ !ten&&ab.unshift(0)&&seven(n.slice(0,n.length-1)); ten&&ten==1&&ab.unshift(1)&&seven(n.slice(0,n.length-1)); ten&&ten==2&&ab.unshift(2)&&seven(n.slice(0,n.length-1)); ten&&ten==3&&ab.unshift(3)&&seven(n.slice(0,n.length-1)); ten&&ten==4&&ab.unshift(4)&&seven(n.slice(0,n.length-1)); ten&&ten==5&&ab.unshift(5)&&seven(n.slice(0,n.length-1)); ten&&ten==6&&ab.unshift(6)&&seven(n.slice(0,n.length-1)); }else if(n[n.length-1]==1){ !ten&&ab.unshift(7)&&seven(n.slice(0,n.length-1)); ten&&ten==1&&ab.unshift(8)&&seven(n.slice(0,n.length-1)); ten&&ten==2&&ab.unshift(9)&&seven(n.slice(0,n.length-1)); ten&&ten==3&&ab.unshift(0)&&seven(n.slice(0,n.length-1),1); ten&&ten==4&&ab.unshift(1)&&seven(n.slice(0,n.length-1),1); ten&&ten==5&&ab.unshift(2)&&seven(n.slice(0,n.length-1),1); ten&&ten==6&&ab.unshift(3)&&seven(n.slice(0,n.length-1),1); }else if(n[n.length-1]==2){ !ten&&ab.unshift(4)&&seven(n.slice(0,n.length-1),1); ten&&ten==1&&ab.unshift(5)&&seven(n.slice(0,n.length-1),1); ten&&ten==2&&ab.unshift(6)&&seven(n.slice(0,n.length-1),1); ten&&ten==3&&ab.unshift(7)&&seven(n.slice(0,n.length-1),1); ten&&ten==4&&ab.unshift(8)&&seven(n.slice(0,n.length-1),1); ten&&ten==5&&ab.unshift(9)&&seven(n.slice(0,n.length-1),1); ten&&ten==6&&ab.unshift(0)&&seven(n.slice(0,n.length-1),2); }else if(n[n.length-1]==3){ !ten&&ab.unshift(1)&&seven(n.slice(0,n.length-1),2); ten&&ten==1&&ab.unshift(2)&&seven(n.slice(0,n.length-1),2); ten&&ten==2&&ab.unshift(3)&&seven(n.slice(0,n.length-1),2); ten&&ten==3&&ab.unshift(4)&&seven(n.slice(0,n.length-1),2); ten&&ten==4&&ab.unshift(5)&&seven(n.slice(0,n.length-1),2); ten&&ten==5&&ab.unshift(6)&&seven(n.slice(0,n.length-1),2); ten&&ten==6&&ab.unshift(7)&&seven(n.slice(0,n.length-1),2); }else if(n[n.length-1]==4){ !ten&&ab.unshift(8)&&seven(n.slice(0,n.length-1),2); ten&&ten==1&&ab.unshift(9)&&seven(n.slice(0,n.length-1),2); ten&&ten==2&&ab.unshift(0)&&seven(n.slice(0,n.length-1),3); ten&&ten==3&&ab.unshift(1)&&seven(n.slice(0,n.length-1),3); ten&&ten==4&&ab.unshift(2)&&seven(n.slice(0,n.length-1),3); ten&&ten==5&&ab.unshift(3)&&seven(n.slice(0,n.length-1),3); ten&&ten==6&&ab.unshift(4)&&seven(n.slice(0,n.length-1),3); } } 写不下去了,我感觉在下头发都在摇曳了,胸口憋了一口闷气。
哈哈哈哈 笑死我了。。。
算是参考前面的,也不知道是不是已经有这个办法了。
const seven = n => new Array(n<<3).slice(n).length;
轉乘 7 進位向左位移, 再轉回 10 進位
function fn(num) {
var d = (num).toString(7)
return parseInt(`${d}0` , 7)
}
fn(123) => 861
常量 sevenTimes = NUM => 的eval(新 阵列(7)。填充(NUM)。加入(' + ')) sevenTimes(10)// 70
方法很不错哈,但是使用了+,不然就完美了
// 定义数字0: var zero = function (f) { return function (x) { return x; } };
// 定义数字1: var one = function (f) { return function (x) { return f(x); } };
// 定义加法: function add(n, m) { return function (f) { return function (x) { return m(f)(n(f)(x)); } } }
// 计算数字2 = 1 + 1: var two = add(one, one);
// 计算数字3 = 1 + 2: var three = add(one, two);
// 计算数字5 = 2 + 3: var five = add(two, three);
// 你说它是3就是3,你说它是5就是5,你怎么证明?
// 呵呵,看这里:
// 给3传一个函数,会打印3次: (three(function () { console.log('print 3 times'); }))();
// 给5传一个函数,会打印5次: (five(function () { console.log('print 5 times'); }))();
function seventimes(x){ let tmp=new Array(x); let resul = tmp.concat(tmp,tmp,tmp,tmp,tmp,tmp); return resul.length }
var x = [].concat(...([...new Array(num)].map(x => [...new Array(7)]))) console.log(x.length)
`
/*
* 按位加
*/
function add(num1,num2){
return num2 ? add(num1 ^ num2,(num1 & num2) << 1) : num1;
}
/*
* 乘以8减一
*/
function multiple(num){
return add(num << 3,add(~num,1));
}
console.log(multiple(5));`
var ab = []; function seven(n,ten){ if(!n){ ten&&ten==1&&ab.unshift(1); ten&&ten==2&&ab.unshift(2); ten&&ten==3&&ab.unshift(3); ten&&ten==4&&ab.unshift(4); ten&&ten==5&&ab.unshift(5); ten&&ten==6&&ab.unshift(6); } if(n[n.length-1]==0){ !ten&&ab.unshift(0)&&seven(n.slice(0,n.length-1)); ten&&ten==1&&ab.unshift(1)&&seven(n.slice(0,n.length-1)); ten&&ten==2&&ab.unshift(2)&&seven(n.slice(0,n.length-1)); ten&&ten==3&&ab.unshift(3)&&seven(n.slice(0,n.length-1)); ten&&ten==4&&ab.unshift(4)&&seven(n.slice(0,n.length-1)); ten&&ten==5&&ab.unshift(5)&&seven(n.slice(0,n.length-1)); ten&&ten==6&&ab.unshift(6)&&seven(n.slice(0,n.length-1)); }else if(n[n.length-1]==1){ !ten&&ab.unshift(7)&&seven(n.slice(0,n.length-1)); ten&&ten==1&&ab.unshift(8)&&seven(n.slice(0,n.length-1)); ten&&ten==2&&ab.unshift(9)&&seven(n.slice(0,n.length-1)); ten&&ten==3&&ab.unshift(0)&&seven(n.slice(0,n.length-1),1); ten&&ten==4&&ab.unshift(1)&&seven(n.slice(0,n.length-1),1); ten&&ten==5&&ab.unshift(2)&&seven(n.slice(0,n.length-1),1); ten&&ten==6&&ab.unshift(3)&&seven(n.slice(0,n.length-1),1); }else if(n[n.length-1]==2){ !ten&&ab.unshift(4)&&seven(n.slice(0,n.length-1),1); ten&&ten==1&&ab.unshift(5)&&seven(n.slice(0,n.length-1),1); ten&&ten==2&&ab.unshift(6)&&seven(n.slice(0,n.length-1),1); ten&&ten==3&&ab.unshift(7)&&seven(n.slice(0,n.length-1),1); ten&&ten==4&&ab.unshift(8)&&seven(n.slice(0,n.length-1),1); ten&&ten==5&&ab.unshift(9)&&seven(n.slice(0,n.length-1),1); ten&&ten==6&&ab.unshift(0)&&seven(n.slice(0,n.length-1),2); }else if(n[n.length-1]==3){ !ten&&ab.unshift(1)&&seven(n.slice(0,n.length-1),2); ten&&ten==1&&ab.unshift(2)&&seven(n.slice(0,n.length-1),2); ten&&ten==2&&ab.unshift(3)&&seven(n.slice(0,n.length-1),2); ten&&ten==3&&ab.unshift(4)&&seven(n.slice(0,n.length-1),2); ten&&ten==4&&ab.unshift(5)&&seven(n.slice(0,n.length-1),2); ten&&ten==5&&ab.unshift(6)&&seven(n.slice(0,n.length-1),2); ten&&ten==6&&ab.unshift(7)&&seven(n.slice(0,n.length-1),2); }else if(n[n.length-1]==4){ !ten&&ab.unshift(8)&&seven(n.slice(0,n.length-1),2); ten&&ten==1&&ab.unshift(9)&&seven(n.slice(0,n.length-1),2); ten&&ten==2&&ab.unshift(0)&&seven(n.slice(0,n.length-1),3); ten&&ten==3&&ab.unshift(1)&&seven(n.slice(0,n.length-1),3); ten&&ten==4&&ab.unshift(2)&&seven(n.slice(0,n.length-1),3); ten&&ten==5&&ab.unshift(3)&&seven(n.slice(0,n.length-1),3); ten&&ten==6&&ab.unshift(4)&&seven(n.slice(0,n.length-1),3); } } 写不下去了,我感觉在下头发都在摇曳了,胸口憋了一口闷气。
佩服佩服,是什么驱使着你
我太菜了🙂
轉乘 7 進位向左位移, 再轉回 10 進位
function fn(num) { var d = (num).toString(7) return parseInt(`${d}0` , 7) } fn(123) => 861
估计这就是作者出这题的意图了。就是考虑进制转换。不过,需要指出的是,Number的toString方法,参数值最终为2到36的整数(不符合的会报错。小数会取整,字符串会转成数字),估计是考虑到数字和字母的组合吧。
// 不用四则运算
// 加法:
// 递归实现
function add(m, n){
return n ? add(m^n, (m & n)<<1) : m;
}
// 迭代实现
function add2(m, n){
while(m) { // 直到没有进位
[m, n] = [(m & n) << 1, m ^ n];
}
return n;
}
// 乘法:
// 整数n的m倍
function multi(n, m){
var i = 0
var res = 0;
while (m != 0) { // 乘数为0则结束
// 处理乘数当前位
if((m & 1) === 1){
res = add(res, n<<i);
m = m>>1;
i = add(1, i); // i记录当前位是第几位
}else{
m = m>>1;
i = add(1, i);
}
}
return res;
}
"use strict";
/**
*
* @author xgqfrms
* @license MIT
* @copyright xgqfrms
* @created 2019-08-14
*
* @description auto-sevent-times-without-math.js
* @description 不用加减乘除运算符, 求整数的7倍
* @description js array get sum value without call math methods
* @augments
* @example eval([1,2,3].join('+'));// 6
* @link https://stackoverflow.com/questions/1230233/how-to-find-the-sum-of-an-array-of-numbers
*
*/
let log = console.log;
const autoSevenTimes = (int = 0, times = 7, debug = false) => {
let result = [];
if (!int) {
return 0;
} else {
for (let i = 0; i < times; i++) {
result.push(int);
}
}
// result = result.reduce((acc, item) => acc + item);
result = eval(result.join(`+`));
if(debug) {
log(`result = `, result);
}
return result;
};
let num = 3;
autoSevenTimes(num);
// expect: 3 * 7 = 21
bitwise-operator
https://repl.it/@xgqfrms/bitwise-operator-and-left-shift-and-right-shift
const autoSeventTimes = (num = 0, times = 7) => {
let x = Math.floor(times / 2);
return (num << x) - num;
};
let xyz = autoSeventTimes(3);
// 21
console.log(`xyz =`, xyz);
var x = [].concat(...([...new Array(num)].map(x => [...new Array(7)]))) console.log(x.length)
typed array
I think using typed array is more meaningful.
const result = [].concat(...([...new Uint8Array(num).map(item => item = 1)].map(x => [...new Uint8Array(7).map(item => item = 1)])));
console.log(result, result.length);
涨姿势
let a="aaaaa" let b=a.repeat(7) console.log(b.length)
全都是大佬,全是二进制。
function seven(num, len) {
return Array.from({ length: len }).fill(Array.from({ length: num }).fill(num)).flat().length;
}
console.log(seven(3, 7));
剽窃智慧的感觉真的很爽,感觉天才好多,大约总结出6种方法1、就是位运算加法;2、eval处理方法(fromCharCodeAt(42),以及Array(7).fill(num))3、进制转转换,数字转为7进制进一位在转为10进制 4、数组方法,根据位运算左移三位,则是8倍的数字,出去本身就是7倍的数组,返回length ,5、竟然想到dom元素子结点宽度设置倍数的关系。6、 循环7次Array(m)的数组concat,点赞为各位
虽然这样做没什么技术含量,但至少符合题意吧哈哈 function(x){ let arr = Array(x) let resultArr = [...arr,...arr,...arr,...arr,...arr,...arr,...arr] return resultArr.length } 我去啊,最原始的方法啊,数个数,哈哈哈
const times7 = x => '1'.repeat(x).repeat(7).length
..... 考基础 😊
let num = 2;
Array(7).fill(Array.from({ length: num })).flat().length;
const num = 5; Array.from(Array(7)).fill(Array.from(Array(num))).flat().length
const getTimes=(num,time)=> "1".repeat(num).repeat(time).length;
var n = 10
Array.from({length: 7}).fill(n).reduce((a, b) => a+b, 0)
function setNumber(number){ return Math.imul(number,7) } setNumber(6)
while取余7次
var a = 3
var foo = 0
for(let i = 0; i <= Infinity; i++){
if(i % a === 0) foo +=1
if(foo === 8){
console.log(i)
break
}
}
const add = (a, b) => {
if (a === 0) return b
if (b === 0) return a
return add(a ^ b, (a & b) << 1)
}
const sum = (n) => {
return add(n << 3, -n)
}
console.log(sum(9))
const calc = num => Array.from({ length: 7 }).reduce((ret, cur) => ret.concat(Array.from({ length: num })), []).length;
位运算 + 剔除数组
- 好记且简单
思路
- 位运算 m << 3,相当于乘以8
- 用这个来创建一个数组,然后剔除掉自己的长度即可
- 剔除方式为splice(0, m),或者是循环然后pop()
实现
const addFnByBit = function (m) {
const res = new Array(m << 3)
for (let i = 0; i < m; i++) {
res.pop()
}
// res.splice(0, m)
return res.length
}
console.log(addFnByBit(5))
let resultArr = [...arr,...arr,...arr,...arr,...arr,...arr,...arr] return resultArr.length }
秀儿 是你
太强了
function bitAdd(num) {
return Array.from({
length: 7
}).fill(num).reduce((p, v) => p + v)
}