逻辑思考:计算某个数字出现在整数中的次数

时间:2014-10-18 05:19:27

标签: python python-2.7 math logic modulo

通过自学书,他们为您提供了一些代码,以查找特定数字在整数中的次数。他们是如何自动知道使用modulo 10的?这是你作为程序员在CompSci课程中学习的一个技巧吗?

def num_zero_and_five_digits(n):
    count = 0
    while n:
        digit = n % 10 # This divides w/10 for remainder. How did they know to use 10?
        if digit == 0 or digit == 5: #These can be changed to whatever digits you want.
            count = count + 1
            n = n / 10 
    return count

了解代码,但并不拥有它。我的意思是,如果我被要求编写代码'我个人会发现某个数字在整数中的次数 做这样的事情:

integer = str(22342445)
looker = list(integer)
counter = 0
find = raw_input("What number are you looking for")
for num in looker:
    if find == num:
        print "We found it!"
        counter += 1

print "There are %d, %s's in %s" % (counter, find,integer )

现在,我的主要问题是:

  1. 如果有人想要查找整数" 10"或更高?怎么样 我可以在第一个解决方案中考虑到这一点吗?

  2. 您会采取哪些步骤来提出第一个解决方案?你怎么会"知道"你需要做模10吗?

1 个答案:

答案 0 :(得分:0)

练习本身的定义不正确。它不应该寻找特定的数字,而应该询问是否要寻找特定的数字。这限制了它,因为我们使用十进制(基数为10)数字(我的意思是我们使用数字的基数10表示),10种可能性之一。而且由于我们使用基数为10的数字,我们需要除以并取10的模数将数字分成数字,以便我们可以比较数字。如果我们讨论的是十六进制数,那么我们将使用16来分隔数字,对于八进制,我们将使用8等。