• <nav id="cwumo"><code id="cwumo"></code></nav>
  • <menu id="cwumo"><strong id="cwumo"></strong></menu>

    RealTek筆試經驗

    時間:2020-11-22 15:07:54 筆試經驗 我要投稿

    RealTek筆試經驗

      寫一個函數計算當參數為n(n很大)時的值 1-2+3-4+5-6+7……+n ;

    RealTek筆試經驗

      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; } //******************************************************** 要求我用一種技巧性的編程方法來用一個函數實現兩個函數的功能n為如: fn1(n)=n/2!+n/3!+n/4!+n/5!+n/6! fn2(n)=n/5!+n/6!+n/7!+n/8!+n/9!

      現在用一個函數fn(int n,int flag)實現,當flag為0時,實現fn1功能,如果flag為1時實現fn2功能!他的要求還是效率,效率,效率!說實在話,如果我心情好的話我應該能給出一種比較好的算法,但我那時真的沒有什么心思再想了,我在紙上胡亂畫了一些諸如6!=6*5!的公式后直截了當的'跟他說要他給出他的答案!面試官也沒有說什么,給出了他的思路:

      定義一個二維數組 float t[2][5]存入[2!,3!,4!,5!,6!},{5!,6!,7!,8!,9!]然后給出一個循環:

      for(i=0;i<6;i++) {

      temp=temp+n/t[flag];

      }

      最后得到計算值!呵呵,典型的空間換時間的算法!

    【RealTek筆試經驗】相關文章:

    筆試經驗:筆試內容準備09-02

    故宮筆試經驗05-07

    長虹筆試經驗12-19

    銀監會筆試經驗12-18

    招商筆試經驗12-18

    微軟筆試經驗12-07

    求職筆試經驗12-07

    蘇寧筆試經驗筆試寫作08-31

    安永筆試經驗及筆試細節08-31

    中興筆試面試經驗08-23

    日韩激情