请打印一个整数n中不包含的数字(按从小到大的顺序
时间: 2024-05-13 12:20:55 浏览: 21
):
算法:
1. 初始化一个长度为10的数字数组,每个元素初始值为0;
2. 将整数n转化为字符串类型;
3. 遍历字符串中的每个字符,将对应数字在数组中的位置值设为1;
4. 遍历数字数组,将值为0的下标输出即为不包含的数字。
Python代码实现:
```
def print_no_digits(n):
# 初始化数字数组
digits = [0] * 10
# 将整数n转化为字符串类型
str_n = str(n)
# 遍历字符串中的每个字符
for ch in str_n:
# 将对应数字在数组中的位置值设为1
digits[int(ch)] = 1
# 遍历数字数组,输出值为0的下标
for i in range(10):
if digits[i] == 0:
print(i, end=' ')
# 测试
print_no_digits(1234567890) # 输出: 0
print_no_digits(13579) # 输出: 0 2 4 6 8
print_no_digits(24680) # 输出: 1 3 5 7 9
```
时间复杂度:遍历字符串和数字数组,时间复杂度为O(1),因此总时间复杂度为O(logn)。
相关问题
输入三个整数按从小到大顺序输出
有两种方法可以实现输入三个整数按从小到大顺序输出的功能。第一种方法是常规计算,需要引入第四个变量作为中间存储空间进行转换。具体步骤如下:
1. 输入三个整数。
2. 判断第一个数和第二个数的大小,如果第一个数大于第二个数,则交换两个数的值。
3. 判断第一个数和第三个数的大小,如果第一个数大于第三个数,则交换两个数的值,此时第一个数为最小值。
4. 判断第二个数和第三个数的大小,如果第二个数大于第三个数,则交换两个数的值,此时第三个数为最大值。
5. 按照从小到大的顺序输出三个数。
第二种方法是指针计算,不需要引入第四个变量,具体步骤如下:
1. 输入三个整数。
2. 定义三个指针分别指向三个整数。
3. 编写一个函数,用于比较两个数的大小并交换它们的值。
4. 编写另一个函数,用于比较三个数的大小并调用第一个函数进行交换。
5. 在主函数中调用第二个函数,按照从小到大的顺序输出三个数。
按从小到大顺序输出小于n的非负整数python
Python语言中可以使用循环语句来按从小到大顺序输出小于n的非负整数。
可以使用for循环来遍历从0到n-1的整数。代码如下:
```python
n = int(input("请输入一个整数n:"))
for i in range(n):
print(i)
```
以上代码中,我们首先通过`input`函数获取用户输入的整数n,并使用`int`函数将用户输入的字符串转换为整数。然后,使用`for`循环遍历从0到n-1的整数,循环变量i将依次取值0, 1, 2, ..., n-1。在每次循环中,使用`print`函数输出i。
例如,当用户输入n为5时,程序将输出0, 1, 2, 3, 4。
需要注意的是,题目中要求输出的是小于n的非负整数,因此循环的范围是从0到n-1。如果要输出小于等于n的非负整数,循环的范围应修改为从0到n。