2012-12-03 52 views
0

例如,我想找到數字,包括2,7從1到7000沒有轉換字符串。 2 7 12 17 ... 20 21 22 23 ... 7000 數學有一個好的算法嗎? 預先感謝您...如何知道數字是否包含特定數字而不轉換字符串?

+0

在標題中,您要求如何檢查一個數字是否包含給定的一組數字。在問題正文中,您要求輸入從0到n的所有數字。你需要哪一個? – Matteo

+0

@Matteo我的目標是問題。但是,你的回答幫助了我。謝謝。你能否給我一些建議,如何改進算法技巧?當我看到算法問題時,我無法做任何事情〜 – user1705636

回答

2

類似的東西

while (n > 0) { 
    digit = n % 10; 
    // check the digit 
    n = n/10; 
} 

實施例與523

  1. 在第一次迭代,你將有位數= 3(123%10)
  2. 在第二次迭代你將有數字= 2(12%10)
  3. 在第三個數字= 5(5%10)
+0

我認爲這仍然不會回答OP的問題。儘管 –

+0

@izomorphius實際上它回答了標題中的問題。但你是對的問題文本是不同的似乎更多「如何找到所有數字從0到n包含一組數字」。 – Matteo

2

考慮一下,如果你把Matteo的代碼放在一個循環中,它就可以工作。順便說一句,你可以提高性能跳過明顯的數字。

例如,如果你在第三位像15783發現7,你可以跳過所有127XX(他們都是valids!),你可以去15800

您也可以直接建立他們。從1到7000他們是:

xxx2 xxx7 
xx2x xx7x 
x2xx x7xx 
2xxx 7000 

用0-9位替換x。 (照顧重疊像XXX2 = xx7x爲0072或0172的...)

編輯:

提示:你不需要串做到這一點。 1332 == 1 * 10^3 + 3 * 10^2 + 3 * 10^1 + 2 * 10^0

相關問題