有一個整數n,寫一個函數f(n),返回0到n之間出現的"1"的個數。比如f(13)=6,
現在f(1)=1,問下一個最大的f(n)=n的n是什么?

????public?static?int?fn(int?n)?
{
????????int?k?=?0;

????????for?(int?i?=?0;?i?<=?n;?i++)?
{
????????????String?iStr?=?String.valueOf(i);

????????????if?(iStr.contains("1"))?
{
????????????????k?+=?iStr.split("1").length;
????????????}
????????}
????????//?System.out.println("k:"?+?k);
????????return?k;
????}1,出題人出完題,很多人都不明白什么意思。
2,然后出題人舉例:比如f(199981)=199981,要求找出這個199981來。
3,有人驗證199981正確
4,有人驗證1111111110?? 正確
5,有人開始在1111111110?? 范圍內找 結果最大的就是1111111110??
6,大家一致認為最大的是1111111110??
7,有人直接給變量賦值1111111110?? ,算了一堆代碼 結果1111111110??
8,此人被人批駁 效率太慢
9,此人優化多次 說效率快多了
10,有人中途給出算效率的公式
11,有人批駁大家把問題高錯了 應該是算時間的 都算錯了
。。。。。
有幾個靈性人 還知道無法證明n是最大的
跟貼依然在繼續
posted on 2007-03-27 11:01
★yesjoy★ 閱讀(299)
評論(0) 編輯 收藏 所屬分類:
算法總結