笔试题汇集之常见算法篇(C/C++)

原创 2012年03月25日 22:14:13

//二分查找算法

int BSearch(int a[],int key,int n)

{

  int low = 0;

  int high =n-1;

  int mid;

  while(low<= high) 

  {

     mid =(low+high)/2;

     if(a[mid]== key)

        returnmid;

     elseif(a[mid] < key)

        low =mid+1;

     else

        high =mid-1;

  }

  return -1;

}

 

 

//写一个函数找出一个整数数组中,第二大的数 microsoft

const int MINNUMBER = -32767;

int find_sec_max(int data[] , int count)

{

int maxnumber = data[0];

int sec_max = MINNUMBER;

for(int i = 1 ; i <count ; i++)

{

if(data[i] > maxnumber)

{

sec_max = maxnumber;

maxnumber = data[i];

} else {

if(data[i] > sec_max)

sec_max = data[i];

}

}

return sec_max;

}

 

 

斐波拉契数列递归实现的方法如下:

 int  Funct( int n )

{

   if(n==0) return 1;

   if(n==1) return 1;

   retrurn  Funct(n-1) + Funct(n-2);

}

如何不使用递归,来实现上述函数?

int  Funct( int n )  //  n 为非负整数

{

   int a=1;

   int b=1;

   int c;

   if(n==0 || n == 1)

        return  1;

   for(int i=1;i<n;i++)

   {

     c=a+b;

     a=b;

     b=c;

   }

   return b;

}

 

 

实现任意长度的整数相加或者相乘功能。

void bigadd(char* num,char* str,int len)

{

    for(int i=len;i>0;i--)

    {

        num[i] += str[i];

        int j = i;

        while(num[j]>=10)

        {

            num[j--] -=10;

            num[j] += 1;

        }

    }

}

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C/C++ 笔试题 常见问题

  • 2010-12-07 10:09
  • 1.34MB
  • 下载

笔试题汇集之大数处理篇(C/C++)

输入二个64位的十进制数,计算相乘之后的乘积。 答:以下代码为网上别人贴出的,输入任意位数十进制数(包括小数,负数)都可以得出正确结果。 思路是:将大数当作字符串进行处理,也就是将大数用10进制字...

十分常见的C/C++笔试题整理(含答案)

最近看到一篇常见的笔试题文章,整理了下! 1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态? virtual修饰符会被隐形继承的。pr...

嵌入式软件开发——嵌入式软件常见的笔试题(c)

本文转自:http://blog.csdn.net/u012138828/article/details/38822721 找工作的事情告一段落,现在把一些公司常见的笔试题型整理一下,本人主要是...
  • Cowena
  • Cowena
  • 2015-07-30 21:39
  • 1392

嵌入式C常见笔试题:字符串

一.strcat、strcpy、strcmp、strlen函数的实现 1 实现strcat函数 格式:extern char *strcat(char *dest,c...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)