笔试题汇集之常见算法篇(C/C++)
来源:互联网 发布:linux find type d 编辑:程序博客网 时间:2024/06/06 03:16
//二分查找算法
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++)
- 笔试题汇集之常见算法篇(C/C++)
- 笔试题汇集之排序算法(C/C++)
- 笔试题汇集之大数处理篇(C/C++)
- 笔试题汇集之大数处理篇(C/C++)
- 笔试题汇集之链表篇(C/C++)
- c常见错误汇集
- C常见笔试题(一)
- C常见笔试题(二)
- 【C语言】[笔试题]:常见笔试题
- 常见的笔试题--C/C++(持续更新)
- 笔试常见之C类型转换
- 笔试题总结之字符串篇(C/C++)
- C笔试常见考点
- C++/java算法笔试题
- C语言笔试算法题
- zz C语言常见笔试题大全(一)
- zz C语言常见笔试题大全(二)
- 认识Toast
- 命令行DOS下无法使用ping等命令
- Red Hat Enterprise Linux 7(RHEL7)卸载openjdk安装sun jdk
- 设计模式之-----抽象工厂模式
- leetcode之路012 Integer to Roman
- 笔试题汇集之常见算法篇(C/C++)
- 读书笔记MoreEffectiveC++(22)
- 在Mac系统上安装Tomcat
- Linux执行脚本
- 笔试题汇集之大数处理篇(C/C++)
- 各大主流.Net的IOC框架性能测试比较
- 视频编解码学习理论基础
- wiki
- rlwrap安装(解决Linux下无法使用上下键)