日韩欧美另类久久久精品_亚洲大色堂人在线无码_国产三级aⅴ在线播放_在线无码aⅴ精品动漫_国产精品精品国产专区

RealTek公司筆試經(jīng)驗

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

  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; } //******************************************************** 要求我用一種技巧性的編程方法來用一個函數(shù)實現(xiàn)兩個函數(shù)的功能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!

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

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

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

  temp=temp+n/t[flag];

  }

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

本文已影響6827
上一篇:2015百度產(chǎn)品運營筆試經(jīng)驗 下一篇:阿爾卡特的筆試經(jīng)驗(C語言)

相關(guān)文章推薦

|||||