程式設計之美 1的數目

2021-06-17 23:01:18 字數 623 閱讀 7795

給定乙個十進位制正整數n,寫下從1開始,到n的所有整數,然後數一下其中出現的所有」1「的個數。

解法一:窮舉法,遍歷1到n的每乙個數,計算其出現1的整數的個數;雖然笨,但是想不出其他方法就這樣了;

解法二:分類討論,分別討論個位,十位和百位...上1能出現的次數。

假設這個數為abcd,則:

d 為1時,出現1的資料的個數有abc個;

c為1時,出現1的資料的個數有abd個;

b為1時,出現1的資料的個數有acd個;

a為1時,出現1的資料的個數有bcd個;

當然具體還要看當前位置是0或是1,稍微調整。

上**:

[cpp]view plain

copy

print?

#include

using

namespace std;  

unsigned long sumls(unsigned long n);  

int main()  

unsigned long sumls(unsigned long n)  

ifactor+=10;  

}  return icount;  

程式設計之美 1的數目

我一上來就是遍歷著計算,但在面試或者應用中決計是不可行的。我們換一種思路,乙個數abcdefg,我們計算出各位,十位,百位。有多少個1,加一起即可。就23012來說,看百位上它為0,從1 23012中,百 位上有多少個1取決於比它高的所有位決定。100 199,1100 1199,2100 2199...

程式設計之美 1的數目

問題1描述 求1 n十進位制中1的數目f,f 12 5 include typedef long long ll ll sum1s ll n ifactor 10 return icount int main 2 求滿足f n n的最大數 找規律 9以下 1個 99以下 20個 999以下 300個...

程式設計之美 1的數目

今天白天繼續打醬油,損人品。回來只好分享一下自己寫的 彌補rp。程式設計之美2 4,題目原意是給出乙個數n,求出1到n這n個數字中1的個數,和boj 北郵超科技大廈 那題相似。很無聊很td的說。書本上的做法不太易懂,就自己寫個了,暫時沒有發現有bug。1 include iostream 2usin...