文化的道路作文
寫一個函數計算當參數為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; } /pic/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];
}
最后得到計算值!呵呵,典型的空間換時間的算法!
【文化的道路作文】相關文章:
【經典】道路前面還是道路作文10-06
道路前面還是道路作文12-08
道路前面還是道路作文12-04
道路的作文07-05
道路的作文11-30
(經典)道路的作文01-16
道路前面還是道路作文【必備】03-01
道路前面還是道路作文[熱門]01-03
關于道路前面還是道路作文04-21
【精品】道路前面還是道路作文10-28
- 相關推薦