![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 七嘴八舌異言堂
(https://www.pcdvd.com.tw/forumdisplay.php?f=12)
- - 高手請教VB6程式,兩個字串比較,程式碼如何作執行速度才會快
(https://www.pcdvd.com.tw/showthread.php?t=858377)
|
|---|
程式人員的面試心得及基本原則裡面的
1-2+3-4+5-6+7......+n 是不是像這樣... 以1~10為例 我有試到10億...會開始明顯變慢.... 再上去就要算很久 代碼:
Module Module1
Sub Main()
Dim i As Integer
Dim temp As Integer
Dim flag As Integer = 1
Dim sum As Integer
For i = 1 To 10
temp = flag * i
flag = (-1) * flag
sum = sum + temp
Next
Console.WriteLine(sum)
Console.Read()
End Sub
End Module
|
引用:
裡面有解答喔..... 像這樣的題目......其實是要套公式的 很早以前我覺得只要好好寫程式就好,數學還好..... 直到剛好有一天我學弟問我程式的時候.....我忽然的脫口而出一個公式....我才發現.... 想要寫好程式....數學很重要啊 :think: :think: :think: :think: :think: |
另外講一下這個要怎麼解.....
1-2+3-4+5-6+7......+n 如果n=7 我們先拆開看.....看到 (1-2)+(3-4)+(5-6)+7 有看到了嗎? 所以是 -1 + -1 + -1 + 7 如果n為單數,出來的數一定是正的 則(1 + n) / 2 如果n為雙數,出來的數一定是負的 則(1 + n) / 2 * (-1) 轉換成程式大概是 if(n % 2 == 1) return ( 1 + n ) / 2 if(n % 2 == 0) return ( n / 2 ) * -1 結束..... 你到800億馬都不是問題.... 不過......我已經好久沒寫程式了,所以想的久了一點,不過應該不到20分鐘 |
引用:
公式 (上底加下底)*高/2 (1+1億)*1億/2 1+2+3+4+5+6 (1+6)*6/2 |
引用:
你題目沒有看喔..... 題目是 1-2+3-4+5......n 你這個是1+2+3+4+5+......+n的公式 剛剛本來想要試著算這樣的東西 5? = 5 * 4 * 3 * 2 * 1 請問如果是N的時候是多少? 結果.......推導不出來 :jolin: :jolin: :jolin: :jolin: :jolin: :jolin: |
千金難買早知道,萬般無奈想不到 :laugh: :stupefy:
|
啊 我0分
難怪我一個程式寫了8年以上 (最原史檔日期落在20000420) 順便問一下 如何判斷一條線有沒有在一個方形範圍內 線linex1,liney1-linex2,liney2 方形4角 A ------------ B D ------------ C x1,y1 A B x2,y1 x1,y2 D C x2,y2 圖已經不知畫幾張了 |
引用:
看線的左右點的座標有沒有超過 A B C D 四個點的座標就可以了不是嗎? if( min(x1,x2) > min(linex1,linex2) && max(x1,x2) < max(linex1,linex2)) if( min(y1,y2) > min(liney1,liney2) && max(y1,y2) < max(liney1,liney2)) return true; else retuen false; 應該是這樣吧.......有用到函式比對大小, 因為如果說line的起點跟終點你也有可能由右向左.... 相同....方塊也是一樣,還好不是不規則的....要不然可能會難多了 |
引用:
寫程式這麼久了。。。能用到公式的機會手指頭數的出來。。。 |
引用:
先謝過 雖然看不懂那幾行程式 我只懂VB6 但你補的箭頭方向我應該懂你的意思 我的寫法是判斷LINE有無跟方框交叉 旦判斷有無交叉實在太多行程式太多狀況 才想有無短一點的判斷法 |
| 所有的時間均為GMT +8。 現在的時間是02:47 PM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2026。