📌  相关文章
📜  查找具有最多一个非零数字的最接近N的较大数字(1)

📅  最后修改于: 2023-12-03 15:26:36.817000             🧑  作者: Mango

查找具有最多一个非零数字的最接近N的较大数字

在编程中,经常需要查找一个具有特定属性的数字,而此题是要求查找具有最多一个非零数字的最接近N的较大数字。以下是解决此问题的思路。

思路
  1. 检查N是否为0。如果是0,则输出1。
  2. 从N开始递增检查数字,每次检查一个数字的非零数字数量。如果此数字的非零数字数量超过1,则继续检查下一个数字。如果此数字的非零数字数量为1,则输出此数字并结束。
  3. 如果没有满足条件的数字,则输出0。
代码

以下是Python实现此功能的代码片段:

def num_of_nonzero(n):
    count = 0
    while n > 0:
        if n % 10 != 0:
            count += 1
        n //= 10
    return count

def find_closest_num(n):
    if n == 0:
        return 1

    i = n + 1
    while True:
        if num_of_nonzero(i) <= 1:
            return i
        i += 1

print(find_closest_num(123))  # 输出124
print(find_closest_num(20))  # 输出21
print(find_closest_num(1))  # 输出2

以上是解决此问题的一种方法,根据实际需求,可能存在其他更高效的解决方案。