首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

名企招聘经典口试编程题集锦[第11-20题]

2013-03-04 
名企招聘经典面试编程题集锦[第11-20题]声明:所有试题均来自网络。解答仅作参考,如对解答有疑问,或者有更好

名企招聘经典面试编程题集锦[第11-20题]

声明:所有试题均来自网络。解答仅作参考,如对解答有疑问,或者有更好的解法,欢迎留言交流。

11、求1+2+…+n。

要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。

15、从上往下打印二叉树
输入一颗二叉树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。  
例如输入

   8
  /   \
 6   10
/  \    /  \
5 7  9  11

输出8 6 10 5 7 9 11。

18、斐波那契数列题目:定义Fibonacci数列如下:  
         {            0                        n=0 
f(n)= {            1                         n=1 
         {    f(n-1)+f(n-2)               n>1       

输入n,用最快的方法求该数列的第n项。
分析: 由于递归的写法效率太过低下,要求用非递归实现。

int g_N = 0;     //全局变量,存储n的值void FindSum(int n,int m){int* data = new int[n+1];for (int i=0;i!=n+1;++i)*(data+i)=0;g_N = n;FindSum(n,m,data);delete[] data;g_N = 0;}void FindSum(int n,int m,int* data){if(n<1 || m<1)return;if(m<n)n=m;if(n==m){*(data+n)=1;PrintData(data);}*(data+n)=1;FindSum(n-1,m-n,data);*(data+n)=0;FindSum(n-1,m,data);}void PrintData(int* data){for (int i=1;i<=g_N;++i){if(*(data+i)==1)cout<<i<<"  ";}cout<<endl;}

热点排行