顯示廣告
隱藏 ✕
看板 rikaka
作者 rikaka (rikaka)
標題 [algo] 寫一個函數計算當參數為 n(n很大) 時的值 1-2+3-4+5-6+7……+n
時間 2012年04月05日 Thu. PM 05:46:16


http://www.vixual.net/blog/archives/99

realtek


其實我一開始就想到版本3
BUT這個版本3是有這麼好嗎? @@

如果一開始就寫版本3, interviewer就不會挑剔嗎



版本1
long fn(long n) {
  long temp=0;
  int i,flag=1;
  if(n<=0) {
    printf("error: n must > 0);
    exit(1);
  }
  for(i=1;i<=n;i++) {
    temp=temp+flag*i;
    flag=(-1)*flag;
  }
  return temp;
}

----------------------------------
版本2
long fn(long n) {
  long temp=0;
  int j=1,i=1,flag=1;
  if(n<=0) {
    printf("error: n must > 0);
    exit(1);
  }
  while(j<=n) {
    temp=temp+i;
    i=-i;
    i>0?i++:i--;
    j++;
  }
  return temp;
}
----------------------------------
版本3
long fn(long n) {
  if(n<=0) {
    printf("error: n must > 0);
    exit(1);
  }
  if(0==n%2)
    return (n/2)*(-1);
  else
    return (n/2)*(-1)+n;
}

--
※ 作者: rikaka 時間: 2012-04-05 17:46:16
※ 看板: rikaka 文章推薦值: 0 目前人氣: 0 累積人氣: 312 
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇
看板名稱: 確定(Enter) 取消(Esc) 搜尋(Space)
查詢帳號: 確定(Enter) 取消(Esc) 搜尋(Space)
搜尋: m)m文 b)進板 c)未分類 a)作者 /)標題 q)取消?[q]

搜尋 送出(Enter) 取消(Esc)

回覆文章至: f)看板 m)作者信箱 b)兩者皆是 q)取消?[f]
要引用原文嗎? y)引用原文 n)不引用 a)全部回覆 r)複製原文 q)取消?[y]
轉錄本文章於看板: 1)使用連結 2)使用複製 q)取消 ?[1]
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc) 全部(a)

確定要刪除這篇文章?(可按大U救回) 確定(Enter) 取消(Esc)

刪除理由:

確定(Enter) 取消(Esc)
加到這個分類: 確定(Enter) 下一層(→) 回上層(←) 取消(Esc)
你覺得這篇文章: 1)真讚 2)真瞎 q)取消?[1] (再選一次即可收回)
你覺得這篇文章: 1)值得推薦 2)表示反對 3)單純註解 q)取消?[3]
guest
預覽(Enter) 取消(Esc)
上傳圖片
按ctrl+Enter可輸入下一行。
guest
確定要送出? 確定(Enter) 取消(Esc) 繼續(e)
搜尋: 送出(Enter) 取消(Esc)

▏▎▍▌▋▊▉ 請按任意鍵繼續