这段代码试图将一个整数转换为二进制表示,但实现有误。函数 `to_binary` 的递归逻辑不正确,导致它只返回了最低位,而没有正确拼接后续的二进制位。 - 在 `else` 分支中,你直接返回了 `n%2`,这只会得到最低位,而忽略了递归调用 `to_binary(n/2)` 的结果。你需要将递归调用的结果与当前位组合起来,才能得到完整的二进制数。 - 递归调用 `to_binary(n/2+n%2)` 这一行写错了,应该是 `to_binary(n/2)`,因为除以2才能去掉最低位。另外,这一行虽然写了,但永远不会执行,因为前面的 `return` 已经结束了函数。