用斐波那契数列来认识算法

14天阅读挑战赛
努力是为了不平庸~
算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法!欢迎记录下你的那些努力时刻(算法学习知识点/算法题解/遇到的算法bug/等等),在分享的同时加深对于算法的理解,同时吸收他人的奇思妙想,一起见证技术er的成长~

算法知识点

打开算法之门

百度百科的定义:(请自觉跳过)

                             (别看,看就是不懂,不看还好,一看之会更迷糊

        算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间,空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度时间复杂度来衡量。

        算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入

        形式化算法的概念部分源自尝试解决希尔伯特提出的判定问题,并在其后尝试定义有效计算性或者有效方法中成形。这些尝试包括库尔特·哥德尔、Jacques Herbrand和斯蒂芬·科尔·克莱尼分别于1930年、1934年和1935年提出的递归函数阿隆佐·邱奇于1936年提出的λ演算,1936年Emil Leon Post的Formulation 1和艾伦·图灵1937年提出的图灵机。即使在当前,依然常有直觉想法难以定义为形式化算法的情况。

算法题目来源

自编

算法题目描述

斐波那契数列:

                                1、1、2、3、5、8、13、21、34、55......

求第n个数是多少?(题目保证在整形数据范围内,n>0)

提示:从第3个数开始,这个数都等于前两个数的和,例如:

          第3个:2=1+1;

          第4个:3=2+1;

                ……

做题思路

一个一个的算呗,还能咋办…………

又不是数学,还要自己找规律。

模板代码 

//  代码1:递归

int Fun(int n){       
	if (n == 1 || n == 2)
		return 1;
	else
		return Fibon1(n - 1) + Fibon1(n - 2);
}
int main(){
	int n;
	scanf("%d", &n);
	printf("%d", Fun(n));
	return 0;
}

 

//数组

int Fun(int n){
	int i=3,list[1000000];
	list[1]=list[2]=1;
    if(n >= 3){
	    while (i <= n){
            list[i] = list[i - 2] + list[i - 1];
		    i++;
		}
    }
	return list[i];
}

//啥都不用

int Fun(int n){
	int num1 = 1;
	int num2 = 1;
	int tmp = 0;
	int i = 0;
	if (n < 3)
		return 1;
	else
		for (i = 0; i>n-3; i++){
			tmp = num1 + num2;
			num1 = num2;
			num2 = tmp;
		}
	return tmp;
}

相关算法题型题目总结

光看代码就知道谁好谁坏了吧

递归:从n迭代到1,再从1算到n去,麻烦啰嗦复杂浪费时间

数组:看看那数组开多大了,占了多少内存,还没到整型的上限呢,n一大,咋办,凉凉

啥不用:哎,巧了,啥麻烦没有。

读书笔记

啥叫算法,就这,就是这个问题最好的算法,连之一都不带有的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我叫Ycg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值