https://leetcode-cn.com/problems/add-to-array-form-of-integer/
/**
num = [2,7,4], k = 181
2 + 1, 7 + 8, 4 + 1
*/
function addToArrayForm(num: number[], k: number): number[] {
const result: number[] = [];
const len = num.length;
for(let i = len - 1; i >= 0; i--) {
let sum = num[i] + k % 10;
k = Math.floor(k / 10);
// 需要进位
if (sum >= 10) {
k = k + 1
sum = sum - 10;
}
result.push(sum)
}
// 处理k的数字长度大于数组的数字长度
for (; k > 0; k = Math.floor(k / 10)) {
result.push(k % 10)
}
return result.reverse();
};
function curry(func: Function) {
const len = func.length;
return function inner(...args) {
if (args.length >= len) {
return func.apply(null, args);
}
return inner.bind(null, ...args);
}
}
function sum(a, b, c) {
return a + b + c;
}
let curriedSum = curry(sum);
console.log(curriedSum(1, 2, 3)); // 6, still callable normally
console.log(curriedSum(1)(2, 3)); // 6, currying of 1st arg
console.log(curriedSum(1)(2)(3)); // 6, full currying