键盘输入一个正整数,用栈实现输出该数相对应的二进制数。写出对应的算法
时间: 2023-05-29 19:01:45 浏览: 52
1. 定义一个空栈。
2. 循环模2操作,将模2的结果入栈,直到输入的正整数为0为止。
3. 依次出栈,输出每个元素,得到该正整数的二进制表示。
算法实现:
```
input_num = int(input("请输入一个正整数:"))
stack = [] # 定义一个空栈
while input_num != 0:
remainder = input_num % 2 # 取模2的结果
stack.append(remainder) # 入栈
input_num //= 2 # 整除2
while stack: # 依次出栈输出
print(stack.pop(), end="")
```
示例输入:13
输出:1101
相关问题
java通过键盘输入一个正整数,然后自己写方法输出其对应的二进制数
要通过Java代码实现输入一个正整数,然后输出对应的二进制数,我们可以使用以下方法:
1. 首先,我们需要使用Java的Scanner类来从键盘获取输入的正整数。代码如下:
```java
import java.util.Scanner;
public class BinaryConverter {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个正整数:");
int num = scanner.nextInt();
// 调用方法将正整数转换为二进制数
String binary = convertToBinary(num);
System.out.println("对应的二进制数为:" + binary);
}
public static String convertToBinary(int num) {
if (num == 0) {
return "0";
}
StringBuilder binary = new StringBuilder();
while (num > 0) {
binary.insert(0, num % 2);
num /= 2;
}
return binary.toString();
}
}
```
2. 在上述代码中,我们定义了convertToBinary方法来将正整数转换为二进制数。该方法使用了StringBuilder类来逆序存储二进制数的每一位,最后使用toString方法返回字符串表示的二进制数。
3. 通过Scanner类获取用户输入的正整数,然后调用convertToBinary方法将其转换为二进制数。最后将结果打印出来。
以上是使用Java代码实现输入一个正整数,输出对应的二进制数的方法。
用c语言写一段代码: 【描述】 输入一个十进制正整数,将它转换为二进制整数并输出。 【输入】 输入一个十进制正整数。 【输出】 输出对应的二进制整数。 【输入示例】 123 【输出示例】 1111011
以下是用C语言编写的解答:
```c
#include <stdio.h>
int main() {
int decimal, binary = 0, remainder, place = 1;
printf("请输入一个十进制正整数:");
scanf("%d", &decimal);
while (decimal > 0) {
remainder = decimal % 2;
binary += remainder * place;
place *= 10;
decimal /= 2;
}
printf("对应的二进制整数为:%d", binary);
return 0;
}
```
输出:
```
请输入一个十进制正整数:123
对应的二进制整数为:1111011
```
注意:这段代码假设输入的十进制数为正整数,没有处理输入负数的情况。
阅读全文