我是Javascript的新手,所以请耐心等待我这个基本问题,
我正在尝试将我的函数添加到一个字符串中的所有单个数字,然后继续这样做,直到我留下一个数字!
awk: cmd. line:1: BEGIN { FS="\t;" } {print $1"\t"$2"\t"$3"\t"$4=$4-12"\t"$5=$4+50"\t"$6"\t"$7"\t"$8"\t"$9" "$10";"$11" "$12";"$13" "$14";"$15" "$16";"$17" "$18";"$19" "$20";"$21" "$22";"$23" "$24";"$25" "$26";"$27" "$28";"$29" "$30";"$31" "$32 ";" $33" "$34";"$35" "$36";"$37" "$38";" }
awk: cmd. line:1: ^ syntax error
awk: cmd. line:1: BEGIN { FS="\t;" } {print $1"\t"$2"\t"$3"\t"$4=$4-12"\t"$5=$4+50"\t"$6"\t"$7"\t"$8"\t"$9" "$10";"$11" "$12";"$13" "$14";"$15" "$16";"$17" "$18";"$19" "$20";"$21" "$22";"$23" "$24";"$25" "$26";"$27" "$28";"$29" "$30";"$31" "$32 ";" $33" "$34";"$35" "$36";"$37" "$38";" }
awk: cmd. line:1: ^ syntax error
我创建了一个while循环,但它只将数字加在一起,直到一个数字才重复,我无法理解为什么!
3253611569939992595156
113 // result of the above digits all added together
5 //result of 1+1+3
答案 0 :(得分:2)
你正在适当地减少,但你没有做的就是重新分裂。尝试将其分解为单独的函数:
function digits(n) {
return n.toString().split('').map(x =>Number(x));
}
然后每次分开:
function rootFunc(n) {
var d = digits(n);
while (d.length > 1) {
d = digits(d.reduce(getSum));
}
return d;
}