var str = this.getValue();
//获取当前文本控件值
const arr = [] // 要输出的结果
let times = 0 // 除以2的次数
function judgeOdevity(num) {
let splitNum;
if (num < 1) return
// 判断数字奇偶性,直到数字小于1为止
if (num % 2) { // 奇数
// 2的指数幂只有1为奇数, 所以这个幂指数可以由1和一个偶数来表示,1不能再拆分,所以应该拿出放入结果集
// 因为这个1是除以2得到的值,所以这个1应该用2的拆分次数幂表示(2^times)
arr.push(Math.pow(2, times))
// 减掉1(num - 1)再除以2,得到新的数字
splitNum = (num - 1) / 2
} else { // 偶数
// 直接除以2(num/2)得到新的数字
splitNum = num / 2
}
// 判断新数字的奇偶性,times加1
times += 1
judgeOdevity(splitNum)
}
// 输入要拆分的正整数
judgeOdevity(str)
// 查看输出结果
_g().setCellValue(1, row-1, arr);
//将数字赋值给B2单元格