键盘输入一个正整数,用栈实现输出该数相对应的二进制数。写出对应的算法
时间: 2023-05-29 13:01:47 浏览: 104
1. 输入一个正整数,使用除以2取余法转换成二进制数,并将每一位存入栈中。
2. 从栈中依次取出每一位并输出,得到该正整数相对应的二进制数。
算法示例:
```
input: 正整数num
stack: 存储二进制位的栈
while(num > 0):
remainder = num % 2 # 求余数
stack.push(remainder) # 将余数存入栈中
num = num // 2 # 求商,继续转换下一位
# 将栈中的内容输出,得到num的二进制表示
while(not stack.isEmpty()):
print(stack.pop(), end="")
```
相关问题
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
```
注意:这段代码假设输入的十进制数为正整数,没有处理输入负数的情况。
阅读全文