一个腾讯笔试题
采用C编程,代码如下:
#include
#define MAX 500
struct STACK
{
int m;
int n;
};
struct STACK S[MAX];
int akm1(int m, int n);
int akm(int m, int n);
void main()
{
int m,n;
int a,b;
printf("please input two data (m,n)n");
scanf("%d,%d",&m,&n);
a=akm (m,n);
b=akm1(m,n);
printf("n recursion=%d non-recursion=%dn",a,b);
}
// 递归的模拟
int akm(int m, int n)
{
if(m*n==0)
return m+n+1 ;
else
{
return akm(m-1, akm(m,n-1));
}
}//akm
//非递归算法: int akm1(int m, int n)
{
int top =0;
S[top].m=m; /*S[MAX]为附设栈,top为栈顶指针*/
S[top].n=n;
if (m*n==0) //m+n+1;
return m+n+1;
do //f(m-1,f(m,n-1)) S[i] save m and n-1; 递归的模拟
{
while (S[top].m) //m-->0
{
S[top].n=S[top].n-1;
while(S[top].n) //n-->0
{
top++;
S[top].m=S[top-1].m ;
S[top].n=S[top-1].n-1;
}
S[top].m--; //when n=0, m=m-1.
S[top].n=S[top].m+2; // n=m+2
}
if(top>0) // m=0,f(m,n)
{
top--;
S[top].m--;
S[top].n=S[top+1].n+1;
}
}
while(top!=0||S[top].m!=0);
return S[top].n+1; //m*n!=0;
}//akm1
待解决问题,当m逐渐增大时,栈很快便会溢出,得不出结果。只有当m值较小时,才能计算出结果。
下面是模拟腾讯给出的样式 改进的'程序:
int akm2(int m, int n)
{
int top ,f;
int ST[MAX]={0}; /*S[MAX]为附设栈,top为栈顶指针*/
top=0;
if (m*n==0)
return m+n+1;
do //f(m-1,f(m,n-1)) S[i] save m ; 模拟递归
{
if (m*n!=0)//当m*n!=0时,进行压栈处理
{
ST[top++]=m;
n--;
}
else //m*n=0
{
f=m+n+1;
if (top>0)
{
ST[top]=ST[--top]-1; //出栈操作
}
m=ST[top];//修改m,n的值
n=f;
}
}
while(top!=0||ST[top]!=0);
return f+1; //m*n!=0; 返回值
}
-
中医执业医师综合笔试准考证打印注意事项
准考证打印注意事项:1.有些省市不是在国家医学考试网打印准考证!需要到当地卫生局进行领取,请关注当地卫生局的信息。点击查看具体准考证打印时间>>2.各省市入口的'开通时间会有所不同,请广大考生实时留意。3.避开准考证打印的高峰期,选择人数较少的时间段进行国家...
-
电源工程师笔试题
1省电模式具有以下哪些性能特征?A高的轻负载效率B固定的开关频率C可能存在EMI问题D在轻负载时具有较高的纹波电压E快速瞬态响应2在下面的升压型转换器中,在FET开关断开之后,电感器电流将会?A立刻降至零B反向并通过FET体二极管流至VinC减小并通过Catch二极管流至Vo...
-
Java笔试题推荐
一、100,100,102,106,112,120,1300,2,4,6,8x-8=2x=10n-120=xn=130二、有两个数组A,B,B数组中的元素包含在A数组中,请写一段代码把A数组中B没有的元素放到C数组中。int[]A=newint[]{0,1,2,3,4,5,6,7,8,9};int[]B=newint[]{2,4,6,8};int[]C=newint[th];intcount=0;f...
-
[老男孩笔记系列]-企业运维面试典型笔试题大汇总
问题70:编写一个程序,接收两个参数ID和content(1)如果这ID在文件中有,那么在数据库中插入一条记录。(2)如果ID没有那么把ID和content写入文件中。(来自《北京拓明科技有限公司》一灯同学提供2011-1-7)老男孩解答参考:分析:误区,此题看似简单,其实并不容易,好多学生,在文...