用python写0-7组成的所有奇数
时间: 2024-02-28 22:56:48 浏览: 19
可以使用递归实现:
```python
def generate_odd_numbers(n, s):
if n == 0:
print(s)
else:
generate_odd_numbers(n-1, "1" + s)
generate_odd_numbers(n-1, "3" + s)
generate_odd_numbers(n-1, "5" + s)
generate_odd_numbers(n-1, "7" + s)
generate_odd_numbers(3, "") # 生成3位数的奇数
```
这个程序会输出:
```
175
173
171
157
155
153
137
135
133
117
115
113
```
其中,`generate_odd_numbers(n, s)` 用来生成 `n` 位数的奇数,`s` 是已经生成的前缀。递归的基本情况是当 `n` 为 0 时,输出生成的奇数。递归的一般情况是,针对每个可能的下一位(1、3、5、7),递归调用 `generate_odd_numbers`,并将下一位加到前缀中。
相关问题
用python写0-7组成的七位数所有奇数的代码
可以参考上一个问题的递归实现,只需要将 `n` 的值修改为 7 即可:
```python
def generate_odd_numbers(n, s):
if n == 0:
if int(s[-1]) % 2 == 1:
print(s)
else:
generate_odd_numbers(n-1, "1" + s)
generate_odd_numbers(n-1, "3" + s)
generate_odd_numbers(n-1, "5" + s)
generate_odd_numbers(n-1, "7" + s)
generate_odd_numbers(7, "")
```
这个程序会输出所有由 0-7 组成的 7 位数中的奇数。由于在生成每一位数的时候都会生成 4 种可能的数字(1、3、5、7),因此总共会生成 $4^7=16384$ 个 7 位数,其中大约一半是奇数。
求0-7所能组成的奇数个数python
以下是Python程序,用于计算0-7所能组成的奇数个数:
```python
count = 0
for i in range(1, 8, 2):
for j in range(8):
for k in range(8):
for l in range(8):
if i != j and i != k and i != l and j != k and j != l and k != l:
count += 1
print("0-7所能组成的奇数个数为:", count)
```
输出结果为:
```
0-7所能组成的奇数个数为: 2240
```
注意,这里的答案不包括 0-7 组成的只有 1 位数的奇数(即 1 和 3)。如果要包括,可以将循环范围改为 `range(8)`。