1.写程序,输入任意大的自然数,输出各位数字之和。 (2)编写程序,输入两个集合setA和setB,分别输出它们的交集、并集和差集setA-setB。 (3)编写程序,输入一个自然数,输出它的二进制、八进制、十六进制表示形式。
时间: 2025-03-18 08:30:21 浏览: 49
### (1) 输入任意大的自然数,输出各位数字之和
对于这个问题,我们可以将输入的自然数转换成字符串形式处理每一位数字。以下是思路:
1. 将大整数作为字符串读取(避免溢出问题),逐位提取每位数字,并将其累加到总和中。
2. 最终返回所有数字相加之和。
**示例代码 (Python)**
```python
num = input("请输入一个自然数: ")
digit_sum = sum(int(digit) for digit in num)
print(f"各位数字之和为: {digit_sum}")
```
---
### (2) 编写程序,输入两个集合 `setA` 和 `setB`,分别输出它们的交集、并集和差集 (`setA - setB`)
我们可以通过 Python 内置的集合操作快速解决此问题。下面是实现步骤及代码:
1. 使用 `{}` 或者 `set()` 构造集合;
2. 调用内置函数求解:
- 并集:`union()`
- 交集:`intersection()`
- 差集:`difference()`
**示例代码 (Python)**
```python
# 获取用户输入
setA_input = input("请输入第一个集合(逗号分隔): ").split(',')
setB_input = input("请输入第二个集合(逗号分隔): ").split(',')
# 创建集合
setA = set(setA_input)
setB = set(setB_input)
# 计算结果
union_set = setA.union(setB) # 并集
intersect_set = setA.intersection(setB) # 交集
diff_set = setA.difference(setB) # 差集 A-B
# 输出结果
print(f"并集: {union_set}")
print(f"交集: {intersect_set}")
print(f"差集(A-B): {diff_set}")
```
---
### (3) 编写程序,输入一个自然数,输出它的二进制、八进制、十六进制表示形式
这是常见的数值系统转换任务,在大多数编程语言中都可以通过库或内置函数完成。例如,在 Python 中可以利用 `bin()`、`oct()` 和 `hex()` 函数直接得到对应的结果。
#### **示例代码 (Python)**
```python
number = int(input("请输入一个自然数: "))
binary_representation = bin(number)[2:] # 去掉前缀 '0b'
octal_representation = oct(number)[2:] # 去掉前缀 '0o'
hexadecimal_representation = hex(number)[2:].upper() # 去掉前缀 '0x'
print(f"{number} 的二进制表示为: {binary_representation}")
print(f"{number} 的八进制表示为: {octal_representation}")
print(f"{number} 的十六进制表示为: {hexadecimal_representation}")
```
#### 解释:
- `[2:]` 表示切片去掉前面的标识符如 `'0b'`, `'0o'`, `'0x'`。
- `.upper()` 确保十六进制字母为大写显示。
---
### 总结
以上三个题目展示了常见的一些基础算法设计以及数据结构应用技巧。希望对你有所帮助!
阅读全文
相关推荐



















