一些经典的面试题及答案

1) 写一个函数计算当参数为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; 


程序员应该将代码优化再优化,我们自己能做的决不要让CPU做,因为CPU是为用
户服务的,不是为我们程序员服务的!” 



2) 用一种技巧性的编程方法来用一个函数实现两个函数的功能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功能!要求的是效率




答案:定义一个二维数组 float t[2][5]存入{{2!,3!,4!,5!,6!},{5!,6!,7!,8!,9!}}然后给出一个
循环: 

for(i=0;i<5;i++) 

temp=temp+n/t[flag]; 

最后得到计算值!

呵呵,典型的空间换时间的算法! 



3) 打印如下图案,共19行,只能有一个for循环(题目已经提供) 

*  

***  

*****  

*******  

*********  

*********** 

*************  

***************  

*****************  

******************* 

*****************  

***************  

*************  

***********  

*********  

*******  

*****  

***  

*  

for(i=0;i<19;i++) 








答案:
for(i=0;i<19;i++) 



static char *a[] = 



" *", 

" ***", 

" *****", 

" *******", 

" *********", 

" ***********", 

" *************", 

" ***************", 

" *****************", 

" *******************", 

" *****************", 

" ***************", 

" *************", 

" ***********", 

" *********", 

" *******", 

"  *****",

" ***", 

" *" 

}; 



puts(a[i]); 

}

 

_^_^_

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值