算法题:
https://leetcode-cn.com/problems/add-to-array-form-of-integer/
整数的 数组形式 num 是按照从左到右的顺序表示其数字的数组。
例如,对于 num = 1321 ,数组形式是 [1,3,2,1] 。
给定 num ,整数的 数组形式 ,和整数 k ,返回 整数 num + k 的 数组形式 。
var addToArrayForm = function(num, k) {let flag = 0let result = []for(let i = num.length -1; i >= 0; i--) {let sum = num[i] + k % 10 + flagk = Math.floor(k / 10)flag = Math.floor(sum / 10)result.unshift(sum % 10)}while(k) {let sum = k % 10 + flagresult.unshift(sum % 10)flag = Math.floor(sum / 10)k = Math.floor(k / 10)}if (flag) {result.unshift(flag)}return result};
注意:
1、进位
2、k可能大于num的数字
手写题
//1.手写函数柯里化
function curry(func) {
//此处补全
}
function sum(a, b, c) {
return a + b + c;
}
let curriedSum = curry(sum);
alert(curriedSum(1, 2, 3)); // 6, still callable normally
alert(curriedSum(1)(2, 3)); // 6, currying of 1st arg
alert(curriedSum(1)(2)(3)); // 6, full currying
function curry(fn, args) {let len = fn.length;args = args || [];return function(...arg) {newArgs = args.concat(arg);if(newArgs.length < len) {return curry.call(this, fn, newArgs)} else {return fn.apply(this, newArgs)}}}
