编写一个 Python 程序,将给定数字中的所有 0 替换为 5。


给定一个整数 N,任务是将数字中出现的所有 0 替换为 '5'。但是,以 '0' 开头的数字不能替换为 '5',因为它保持不变。例如,

输入-1

N = 1007

输出

1557

解释 − 给定数字包含 2 个零,当用 '5' 替换时,结果输出为 1557。

输入-2

N = 00105

输出

155

解释 − 由于给定数字以 '0' 开头,可以忽略,并且在用 '5' 替换中间的 0 后,输出结果为 155。

解决此问题的方法

要将给定数字中的所有 0 替换为 '5',我们可以找到并提取数字的最后一位数字。如果该数字的最后一位数字是 '0',则将其值更改并替换为 '5',然后提取另一位数字。但是,必须忽略给定数字中的任何前导 '0'。因此,我们将首先提取最后一位数字,然后在提取该数字的其他数字时再次调用相同的函数。

  • 输入数字 N。

  • 一个整数函数 convertToFive(int N) 以数字作为输入,并通过将所有 0 替换为 '5' 来返回修改后的数字。

  • 如果数字的最后一位数字是 '0',则将其值替换为 '5'。

  • 返回递归函数,该函数通过除以 '10' 和乘以 '10' 来获取数字的另一位数字。

  • 返回输出,该输出通过将其添加到其中来提取最后一位数字。

示例

def convertToFive(number):
   number += calculateAddedValue(number)
   return number
def calculateValue(number):
   result = 0
   placeValu = 1
   if (number == 0):
      result += (5 * placeValue)
   while (number > 0):
      if (number % 10 == 0):
         result += (5 * placeValue)
      number //= 10
      placeValue *= 10
   return result
print(covertToFive(14006))

输出

运行以上代码将生成以下输出:

14556

由于给定数字中有两个 0,因此在替换数字 14006 后,它将变为 14556。

更新于: 2021年2月5日

514 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告