|
#1
| |||
| |||
| [問題][C&C++] x=x+1 的執行次數 (已解決) 然後我問老師,老師跟我說這題要用倒出來的,所以請各位可以幫幫我嗎。 請計算下列片段程式中 x=x+1 的執行次數 a.for (i=1; i<=n; i++) for (j=1; j<=i; j++) for (k=1; k<=j; k++) x=x+1; b.for (i=1; i<=n; i++) for (j=1; j<=n; j++) x=x+1; c.for (i=1; i<=n; i++) { j=1; for (k=j+1; k<=n; k++) x=x+1; } 此文章於 2005-11-24 07:15 AM 被 bojack 編輯. |
|
#2
| |||
| |||
| 這種題目還是自己來做會比較好唷!不知道「倒出來」是什麼意思,我用我個人的作法幫你解 第一題做個概念。其他的還是要靠自己推推看吧! 首先,你要先找出執行次數,用推的可能比較累一點吧!寫程式來做輔助也可以的。像是我下 面寫這段程式碼: -------------------------------------------------------------------------------------------------------- int i, j, k; int run = 0, n = (自己要的數字); for(i=1; i<=n; i++) for(j=1; j<=n; j++) for(k=1; k<=n; k++) run += 1; printf("%d\n", run); -------------------------------------------------------------------------------------------------------- 用硬推的方式也可以推出規則出來,除非真的沒有規則...太難的,考慮用遞迴法來做,有時候 可能會有意想不到的效果... 總而言之,不斷去改變N的數值,你會得到:1, 4, 10, 20, 35, 56, 84, 120, 165, ... 再進一步去分析數據,得到兩兩數據的差值:3, 6, 10, 15, 21, 28, 36, 45, ... 這樣應該慢慢可以看出規律了,兩兩數據差:3, 4, 5, 6, 7, 8, 9, ... 也就是說呢,我們要算的執行次數數據為:1+3+3+4+5+6+7+8+9+10+11+... 套用簡單的級數求和就可以找出關係式了。這算是個比較愚蠢的方法吧...就用討論的。 把第二次視為例外,數據就變成:1+2+3+4+5+6+7+8+9+...+(1) 套入級數求和:[ n(n+1) / 2 ] + 1,這個就是關係式啦~~
__________________ 掬一把人間淨土,造千年人間仙境 此文章於 2005-10-04 07:15 AM 被 wongwt 編輯. |
|
#3
| |||
| |||
| 謝謝上一位大哥幫我解釋,我已經了解了 |
|
#4
| |||
| |||
| 對不起~借用你開的問題板來問一下.... 這個是C語言嗎?? 那可以用VB程式語言解說嗎?? 還有~VB跟C語言哪個比較好呢?? 聽說VB是過時的程式開發產品耶~真的嗎?? |
|
#5
| |||
| |||
| 是的,這個問題就是用C語言來解的。 如果你要VB的解法的話,其實很類似的。不過我很久沒用了....要在研究一下。 VB其實不能說他是一種過時的開發產品....畢竟目前中小學程式設計還是以VB做為教學語言。 而且國際比賽也都還保留了VB的程式支援。只是應該會漸漸消失。 就語言來講,大家是說C語言和C++坐穩龍頭。但其實只要自己習慣,什麼語言都是很好的。 為什麼大家會選用C語言,是因為它的跨平台能力很強,而且具有高度結構化的語言架構。 現在很多新興語言都是利用C語言的語法來作發展,所以有時候相似度很高, 如此一來,就彷彿是學一種語言,就等同於學會了好幾種語言一樣....不過這點還是有很多人有意見的.... 我個人覺得比較重要的是記憶體的管理方式。C語言非常強調這個部份,什麼資料要用什麼型態很清楚~~ 不像VB的話,甚至可以不用宣告變數,還設計了一個16bit的超大號資料型態Variant.... |
|
#6
| |||
| |||
| 這麼說是要學習C語言或者C++比較好囉~~ 可以請教一下~哪種東西要自己學習的話該從何下手呢??(學校只教VB) 還有~我在SHARE GET找不到C或者C++耶~~ 請問一下各位大大有下載點ㄇ?? 要學這種東西最少最少我知道要哪種程式會比較好吧~可是又找不到~ 希望有好心的大大可以給我一下C或者C++的BT下載點~(可以續傳的就好) |
|
#7
| |||
| |||
| 學程式的總是老王賣瓜囉...總覺得自己學的才是好的... C語言的軟體不用錢就可以下載到了。如果您夠闊氣的話,可以用Microsoft Visual C++ 沒那麼闊氣的話...網路上到處都可以下載到免費的Dev-C++~~同時支援C和C++ 如果說您有心要學的話,小的有自編一套入門版的教材,有需要請PM我~~
__________________ 掬一把人間淨土,造千年人間仙境 |
|
#8
| ||||
| ||||
| 引用:
人家在問我寫DHTML時,要用哪個好?ASP PHP ASP.NET JSP ? 我總是推薦 PHP ... 沒什麼特別,只因為習慣了,寫久就覺得其實沒有那麼難 至於其它的倒是沒有著墨太多,只告訴自己觀念都是一樣的,只是語法、函式不同而已 so ... 只要能專精一門程式,學其它的也不是什麼問題,對吧 : ) Bojack |
|
#9
| |||
| |||
| Microsoft Visual C++下載不到嗎?? 我找過了~但是找不到 = = shareget也找過了~可是好像都沒看到的樣子~或者是我眼睛太小沒看到~有看到的大大可以po個下載網址給我嗎?? 還有~pm是什麼?? 有好心人肯提共教材~~當然要好好把握啦~~我有需要~!! 最後再問一個問題~目前最廣泛的程式語言是c語言~還是c++阿? |
|
#10
| |||
| |||
| 唔...像ShareGet這麼大的分享論壇怎麼會沒有Visual C++!? http://www.shareget.net/showthread.php?t=80418 http://voxel.dl.sourceforge.net/sour....9.2_setup.exe PM...就是私人訊息啦...這說法已經退流行了嗎...!? 其實我不是很清楚他們的廣泛性耶...印象中,作業系統都是C的天下,其他軟體則是C/C++都有~~ 這我不能很確定~~要再請問高人囉... 那就麻煩您用私人訊息把電子郵件給我~~如果你需要教材的話~~
__________________ 掬一把人間淨土,造千年人間仙境 |