2014-10-18 43 views
-1

通過自學書籍,他們給了你一些代碼來找出特定數字在一個整數中的數量。他們是如何自動知道使用模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

這太寬泛了,也可能應該移到數學SO並且也在尋找外部資源。你真的應該把它分解成多個不同的問題。 – 2014-10-18 05:25:57

+0

我會把它削減一點,使其不那麼寬泛。 – Kameron 2014-10-18 05:40:38

回答

0

該練習本身沒有正確定義。而不是尋找一個特定的號碼,而應該詢問關於尋找特定的數字。這限制了它,因爲我們使用十進制(基數爲10)的數字(我的意思是我們使用數字的10進製表示),這是10種可能性之一。而且由於我們使用的是基數爲10的數字,所以我們需要除以10並將模數分成數字,以便我們可以比較數字。如果我們正在談論一個十六進制數字,那麼我們將使用16來分隔數字,對於八進制我們將使用8等。

+0

所以這基本上意味着因爲我們使用的是基數10,所以我們無法找到超過1-9的任何數字 因此沒有辦法計算多少個10,21,22等? – Kameron 2014-10-18 06:14:08

+0

您可以找到成對的數字從0-9,但你不會這樣做 – 2014-10-18 06:18:58

+0

我會怎麼做?提示是好的。我試着切換到%100,這可能會返回兩位數,但沒有運氣。缺少? – Kameron 2014-10-18 06:34:39

相關問題