程式設計之美Q1

2022-07-12 03:00:15 字數 1139 閱讀 4858

題目

和數書頁有點類似,就直接數吧

#includeusing namespace std;

class q1

;size_t q1::func(size_t num)

--num;

} return count;

}int main()

;size_t q1::func(size_t num)

--num;

} return count;

}size_t q1::func1(size_t num)

circle *= 10;

} return ncount;

}int main()

{ q1 an;

size_t num;

while(1)

{ cout<

cin>>num;

cout執行一下,發現即使數字很大相當快,程式設計之美作者牛逼

第二問,作者的答案是

然而,將n = 1 111 111 110輸入

雖然很接近,但是最大n確實不在此點,而且經過手動校驗,也不在這附近。

使用影象法,只要找出y = func1(n)和y = x兩個函式交點即可。 由實踐可知交點不止乙個,並且有交點非整數。

進行遍歷對比,效率很低,發現了存在這麼多 n = func(n)

程式跑到這裡,已經被作業系統強行終止了,但是我們知道在1~2^32 - 1 這個區間範圍內應該還有更大的數字滿足n = func1(n),現在遍歷已經行不通了,所以建議使用matlab將 y=x 和 y = func1(x)這兩個曲線繪出來,然後在估算交點區間,在小區間內進行更高效的遍歷,這樣可以快速找出答案。

《程式設計之美》筆記 1

又度過了一周,這是本學期教學周第十周,一半過去了,也真正感受到了一些緊張。然而,再忙還是要讀些東西的,畢竟買了不少書,不讀也可惜,希望能堅持下去。2017 11 3 16 00 資訊館121 1.程式設計的樂趣在於探索,而不是在於背答案。面試的過程就是展現分析能力 探索能力的過程。在面試中展現出來的...

菜鳥刷題之路 Q1

寫乙個函式,求兩個整數之和,要求在函式體內不得使用 四則運算符號。一開始考慮轉化成位來計算,但是這樣 結構非常複雜且當出現負數時就難以計算。之後轉化思維,從十進位制數字計算的本身上來看 兩個數 ab cd 的計算過程可以看成是 a c e,b d f,如果e,f大於10,就保留ef 的個位數。如果出...

程式設計之美 想到的(1)

覺得乙個程式設計師的實力絕對是與其演算法水平成正比的,所以這個部分的部落格主要是我看到的比較好的演算法的總結,演算法的提高主要是看 思考 變 所以覺得寫部落格還是比較好的方法,最近在看程式設計之美,就從這裡開始吧 中國象棋將帥問題其實還是個比較簡單的問題,不過有乙個解法還是吸引了我,題目在上面 上 ...