這次筆試的時候,我遇見了乙個筆試題目,我覺得這個題目,真的體現了數學之美,我的天,你自己抓破腦子,啊啊啊啊啊,我該怎麼辦,然後,你一看答案,有一種醍醐灌頂的感覺,然後拍一拍自己的小腦瓜,唉聲嘆氣,哎,我自己怎麼就沒想到呢
題目如下
最小因子,只有2和3和5的數,稱作醜數(ugly number)。例如6、8都是醜數,但14不是,因為它包含因子7。習慣上我們把1當做是第乙個醜數。現在求出第n個醜數
首先我們把題目搞懂,這個醜數就是,他的最小的因子,只能是2,3,5,比如數字 8,可以分解為2*4,但是4又可以繼續的分解為2*2,所以是醜數
自己想的話,要想很久的,站在前輩的肩膀上,看看人家是用什麼樣子的方法解決的。
第一步:把這些醜數,存在陣列裡面,那麼arr[0]=1
第二步:後面的數字,都是前面數字的2,3,5倍,那麼我們得到一組數字1*2 , 1*3 , 1*5,找出其中最小的數字,也就是2,插入到陣列中去,此時陣列變成 [1,2]
第三步,取出陣列的2,乘以2,得到4,第二步的時候,我們取走了1,還剩下數字3和數字5,我們比較3,4,5。找出最小數字3,加入到陣列當中,此時陣列變成了[1,2,3]
第四步:我們取出陣列的最後乙個數字,重複第三步的操作,得到6,然後比較5,4,6,得到4,插入陣列
然後就是一直的迴圈往復,這個做法是相當的巧妙的,要自己多多的研究,果然這就是數學的魅力!!!
"en">
演算法重要的是思想,厚積才能薄發,只有自己多多的去練習,去見一見這些巧妙的解法,日積月累,然後學這個思想,多總結,自然水到渠成
筆試程式設計題(一)
題目原型 乙隻青蛙一次可以跳上1級台階,也可以跳上2級 它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法。題目變形 這是做筆試時遇到的描述,解決思路一樣。公司老闆準備發獎金,總共發n元,一次可以發1元,也可以發2元,或者一次性全部發完。求老闆總共有多少種發法。每個台階可以看作一塊木板,讓...
一道筆試程式設計題
有乙個無向圖,寫乙個函式判斷圖中是否存在迴路。函式原型如下 int ring int array,int n,int k n為圖中的頂點數,k為圖中的邊數,array其實是乙個k行2列的二維陣列,其中的元素比如 0,1 表示頂點0和頂點1之間存在邊。圖中如果存在迴路,函式返回1,否則返回0。不知哪位...
筆試程式設計題一道
一道華為程式設計題目,int a nsize 其中隱藏著若干0,其餘非0整數,寫乙個函式int func int a,int nsize 使a把0移至後面,非0整數移至陣列前面並保持有序 按原來順序 返回值為原資料中第乙個元素為0的下標。盡可能不使用輔助空間且考慮效率及異常問題,注釋規範且給出設計思...