复试笔记

1.递归篇

1.1 递归求斐波那契数列

#include<iostream>

using namespace std;

//递推法求斐波那契数
//需要将中间值进行存储

const int MAXN = 35;

int fibonacci[MAXN];    //存储斐波那契数

void Initial(){
	fibonacci[0] = 0;
	fibonacci[1] = 1;
	for(int i = 2; i < MAXN; ++i){
		fibonacci[i] = fibonacci[i -1] + fibonacci[i - 2];
	}
}

int main(){
	Initial();
	int n;
	while(scanf("%d",&n) != EOF){
		printf("%d\n",fibonacci[n]);
	}
	return 0;
}

1.2 递归求n的阶乘

#include<iostream>

using namespace std;

long long Fact(int n) {
	if(n == 0) {
		return 1;
	}
	return n*Fact(n-1);

}

int main() {
	int n;
	while(scanf("%d",&n) != EOF){
		printf("%lld\n",Fact(n));
	}
}

1.3 递归之汉诺塔问题

#include<iostream>

using namespace std;

//普通汉诺塔问题
long long Hanoi(int n){
	if(n == 1){
		return 1;
	}else{
		return 2 * Hanoi(n -1) + 1;
	}
}

//汉诺塔III
//不允许将圆盘从最左边移动到最右边
long long Hanoi_3(int n) {
	if(n == 1) {
		return 2;
	} else {
		return 3 * Hanoi_3(n-1) + 2;
	}
}

int main() {
	int n;
	while(scanf("%d",&n) != EOF) {
		printf("%lld\n",Hanoi_3(n));
	}
}
全部评论

相关推荐

03-03 23:12
已编辑
北京邮电大学 Java
书海为家:我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务