劍指offer系列之三十 整數中1出現的次數

2021-09-23 22:54:20 字數 683 閱讀 6198

題目描述

求出1~13的整數中1出現的次數,並算出100~1300的整數中1出現的次數?為此他特別數了一下1~13中包含1的數字有1、10、11、12、13因此共出現6次,但是對於後面問題他就沒轍了。acmer希望你們幫幫他,並把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的次數。

有一種比較簡潔的思路:由於是乙個整數區間,所以可以對每乙個數進行判斷,那麼如何判斷某個數中1出現了多少次呢?注意到如果乙個數一直被10除,如果被10整除後的餘數是1,那麼一定出現了數字1。舉個例子,數字11,被10整除之後的數字是1,說明出現了數字1,除以10後變成了1,發現被10整除之後的餘數是1,所以1一共出現了兩次。這樣就能判斷某乙個數字1出現的數字了。剩下的工作的迴圈對每乙個數字出現的次數進行統計就可以了。

下面是基於這種思路的實現**(已被牛客ac):

package com.rhwayfun.offer;

public

class numbersof1between1andn

return number;

}private

intnumbersof1(int i)

return number;

}public

static

void

main(string args)

}

劍指offer三十 整數中1出現的次數

求出1 13的整數中1出現的次數,並算出100 1300的整數中1出現的次數?為此他特別數了一下1 13中包含1的數字有1 10 11 12 13因此共出現6次,但是對於後面問題他就沒轍了。acmer希望你們幫幫他,並把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的次數 從1 到 n 中1...

劍指offer系列之三十九 陣列中只出現一次的數字

題目描述 乙個整型陣列裡除了兩個數字之外,其他的數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。先考慮只有只有乙個數字出現一次的情況,因為其他數字只出現了兩次,所以對這兩個數字進行異或運算的時候,其結果是0,那麼那個只出現一次的數字進行異或運算的時候,其結果必然不是0,所以可以利用這點找出那個...

《劍指offer》系列 1

最近一直在看劍指offer,這上面的題目都是比較考察程式設計能力的,打算做個記錄,把寫過的 儲存下來 1.實現乙個string類 面試官的考察點應該在以下幾點 1.模板類的書寫 2.對於賦值函式考察的幾點 1 是否返回引用,因為只有返回引用,才能連續的進行賦值 2 引數是否是常量 3 是否是自身賦值...