分别设计循环算法和递归算法,将任意输入的十进制正整数n转换为二进制数并输出。用javascript
时间: 2024-09-20 07:09:12 浏览: 45
C.rar_instead5ss_尾递归_整数转为二进制数
**循环算法(迭代法)**:
```javascript
function decimalToBinaryIterative(n) {
let binary = '';
while (n > 0) {
binary = (n % 2) + binary;
n = Math.floor(n / 2);
}
return binary;
}
console.log(decimalToBinaryIterative(10)); // 输出 "1010"
```
**递归算法**:
```javascript
function decimalToBinaryRecursive(n, prefix = '') {
if (n === 0) {
return prefix;
} else {
return decimalToBinaryRecursive(n / 2, prefix + (n % 2));
}
}
console.log(decimalToBinaryRecursive(10)); // 输出 "1010"
```
这两个函数都可以将给定的十进制正整数 `n` 转换为二进制表示。第一个函数是循环版本,通过不断取余数和除以2来得到每一位的二进制数;第二个函数是递归版本,每次调用自身处理 n 的一半,同时累积每一位的二进制值。
阅读全文