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