作者gigiball (gigiball=睪丸 是公的)
站內Prob_Solve
標題Re: [問題] 面試遇到的程式問題,現在還想不出來(MTK)
時間Fri Jan 4 11:28:57 2008
可以用數學公式來解決這個問題
試著推導出公式
0可以不用看了
1 ~ 100 中間數為50
1~ 49 為一組 51 ~ 99為一組
各組各數為49
1+99 =100
2+98 =100
3+97 =100.....以此類推
共有 49個100 加上 i<= 100 所以100再加一個 等於 50個100
加上原本的中間數 50
答案為5050
可以推導出公式為 (X^2/2) + (x/2)
i推到 150 答案為 11325
當然還可以再優化.... 在計算過程中
用位元的變化去處理上述的運算式 也是ok的
看有沒有大大還有其他解....囉.....
※ 引述《asleepme (冬天了)》之銘言:
: ※ [本文轉錄自 Tech_Job 看板]
: 作者: asleepme (冬天了) 看板: Tech_Job
: 標題: [問題] 面試遇到的程式問題,現在還想不出來...
: 時間: Sun Dec 30 13:42:09 2007
: 是當面問的
: 不過他當初是這樣講的:
: 有一個for迴圈,從0加到100
: 可是我覺得他不夠快,要怎樣才能讓他更快
: for( i=0; i<=100; i++)
: s=s+i;
: 不可以用數學公式
: 請忽略宣告或初始化的問題,我想不是重點
: 因為我當初把i=0改成i=1的時候他只是無言的笑了笑
: 請指點
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.87.151.2
→ gigiball:啊..我這算公式嗎..比較像建構式數學... 01/04 11:31
推 ClubT:不是有說不能用公式... 01/04 14:06
推 yun224:我想知道,學校是不是沒有教高斯法啊@@... 01/04 16:27
→ final01:Gauss幼稚園提出的方法 01/04 16:41
→ revivalworld:這個證明跟高斯的故事國中不是教過= = 01/04 18:51
→ Astar:挺難的公式,真佩服你推出來了。 01/04 22:40
→ phi61023:(X^2/2)+(x/2)不就是[n*(n+1)]/2嗎? 還是使用公式了..Orz 02/21 13:20