程式設計之美 1的數目

2021-06-20 23:47:36 字數 661 閱讀 4002

問題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個

9999以下:4000個

999999999以下:900000000個

9999999999以下:10000000000個

99999999999以下:110000000000個//a

所以滿足f(n)=n的值必然不會大於a,所以只要從後向前便利,找到第乙個f(n)=n即為所求

#include typedef long long ll;

ll sum1s(ll n)

ifactor*=10;

} return icount;

}int main()

} return 0;

}

程式設計之美 1的數目

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

程式設計之美 1的數目

給定乙個十進位制正整數n,寫下從1開始,到n的所有整數,然後數一下其中出現的所有 1 的個數。解法一 窮舉法,遍歷1到n的每乙個數,計算其出現1的整數的個數 雖然笨,但是想不出其他方法就這樣了 解法二 分類討論,分別討論個位,十位和百位.上1能出現的次數。假設這個數為abcd,則 d 為1時,出現1...

程式設計之美 1的數目

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