互联网公司面试题之四_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > 互联网公司面试题之四

互联网公司面试题之四

 2011/12/13 9:18:15  YuHuang.Neil  http://yuhuang-neil.iteye.com  我要评论(0)
  • 摘要:问题:假设给定一个嵌入式设备,它的内存有限,可以利用的内存只有1M(包括代码段和数据段空间)。你的任务是编写一个尽可能精简的程序以最高效的方式实现下面任务:读入一个整数N,若N为非负整数,则计算N到2N之间的整数和;若N为一个负数,则求2N到N之间的整数和。答:实现代码如下:#include<stdio.h>n,s,t,i;intmain(){for(;~scanf("%d",&n);printf("%d\n",t*s))for(t=n>0?:-1,i=n=t*n
  • 标签:面试 公司 互联网 面试题
问题:假设给定一个嵌入式设备,它的内存有限,可以利用的内存只有1M(包括代码段和数据段空间)。你的任务是编写一个尽可能精简的程序以最高效的方式实现下面任务:
读入一个整数N,若N为非负整数,则计算N到2N之间的整数和;若N为一个负数,则求2N到N之间的整数和。

答:实现代码如下:

#include <stdio.h>
n,s,t,i;
int main()
{
   for(;~scanf("%d",&n);printf("%d\n",t*s))
      for(t=n>0?:-1,i=n=t*n,s=0;i<=2*n;) s+=i++; 
   return 0;
}




程序分析:C语言的空程序默认情况下使用内存大小为904kb,上述代码占用<200B内存,且完成了相应的任务,符合要求。


优化方案:


#include <stdlib.h>
main(n)
{
   for(;~scanf("%d",&n);printf("%d\n",(abs(n)+1)*3*n/2));
}




发表评论
用户名: 匿名