今天想写一点简单的东西-关于计算机算法的

计算机算法设计与分析

之Fibonacci数列

无穷数列1,1,2,3,5,8,13,21,34,55,...,称为Fibonacci数列。关于它的三种方法:
①简单变量法

设置四个变量,f1, f2, f, i 再结合循环完成算法(以前二十项为例)

#include<studio.h>
int mian()
{
int f1,f2,f,i;
f1 = 1,f2 = 1;
for(i = 1,i <= 20,i++)
{
f = f1 + f2;  //传统迭代方法
f1 = f2;
f2 = f;
}
printf("%d",&f);
return 0;
}

缺点:只能保留最后结果f,中间的值都没有保存 简化:将for循环里面改为:

f2 = f1 + f2;
f1 = f2 - f1;
这样可以减少一个变量,只需要三个变量就可以了。
②数组

可定义一个长度为20的一维整型数组,结合for循环完成算法

#include<studio.h>
int mian()
{
int f[20],i;
for(int i = 0,i < 20,i++)
{
    f[i] = f[i-1] +f[i-2];
}
printf("%d",&f[20]);
return 0;
}

优点:可以将中间结果的每一个值保存下来

③函数
public static int fibonacci(int n)
{
if(n <= 1)
return 1;   //边界条件
else
return fibonacci(n-1) + fibonacci(n-2); //递归方程
}

#include<studio.h>
void mian()
{
int n =20;
printf("%d",fibonacci(n));
return 0;
}

使用函数的两个条件:①递归方程 ②边界条件

时间: 2024-08-04 17:59:52

今天想写一点简单的东西-关于计算机算法的的相关文章

写一个简单的servlet

昨天写完hibernate的小demo后,想写一个简单structs2,但是发现好像自己连servlet都忘了怎么写了,所以一切从头开始,先写一个简单servlet把 第一步 肯定是建立项目了,打开自己eclipse(myeclipse,sts,idea).然后file->new->java project.这里肯定会有疑问,为啥不建立一个web project呢.呃,原因很简单,因为要从头来,一切都从头来呗,web project里 web方面的属性都给配置好了,就起不到学习的作用了. 名字

使用HTML写一个简单的跳转登录页面

最近在学习前端的知识,于是就想写一个简单的页面跳转,必须是勾选了"我同意"这个选项以后才能跳转,否则不能,不废话,直接上代码. 首先是第一个页面:testlogin1.html <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>Title</title> </hea

筹划开始写一个系列的东西

最近晚上的时间相对来说是比较宽裕的,所以想写一个系列的东西出来,以便于巩固自己当前的知识体系. 目前我的计划如下: 1. WebAPI 系列讲解. 2. Signalr 系列讲解. 3. MySQL数据库系列讲解. 4. ABP框架系列讲解. 5. 自学DDD系列讲解. 6. 敏捷开发之我所见所闻系列讲解. 7. 自学TDD系列讲解. 8. KnockOut.JS系列讲解. 9. 自己读的和技术无关的一些书籍方面的系列. 我非常喜欢研究DDD框架,SOA框架和基于事件消息模型的中间件框架,同时对

一点都不想写今天的总结呀

acenodie 于 2015/3/30 20:43 修改 ? ? 今天多好的一天呀,上午就三节课,其他的时间都没有课,早上起来干了什么呢,让我想一想,8点起的床,然后洗刷刷:接着应该是在网上随便看了些什么东西,玩了会手机,真是完全不记得了呀,时间就是这么流逝浪费的呢!反正九点多的时候就出去了,上课,后三节: ? ? 课是网络工程实验课,本来听着名字是多好的课呀,哎,可惜我们学校的实验环境太差,华三的交换机路由器没几台是好的,叫我们怎么做实验呀!老师也是极度不负责任,自己也不够直觉,三节课无聊得

phpunit测试学习 1:一点简单的扼要有用的东西的总结 一点入门认识

16:45 2015/12/8phpunit测试学习 1:一点简单的扼要有用的东西的总结  一点入门认识 具体的入门安装和入门实践请参照文中的推荐博客或网上其他博客推荐博客,我感觉这几篇博客写得很不错,虽然一和二可以结合在一起,内容并不多 且给新手更容易带来学习信心:安装建议参照我的另一篇安装博客,因为当时我是按照这种方式失败的,文中提及网 络原因导致失败,我当时显示的是安装的某个路径似乎没有维护了,那个url已经不存 在了(所以我也不知道是网络原因还是真的那个路径不存在了)(PHP教程:PHP

1.想写一些关于c++的东西了,就作为个开篇吧

又再一次重拾c++,想写一些东西,给自己看看,不想再看一些隐晦翻译的外国书籍了,就从一本好读的书开始写一写. 就这本吧, <我的第一本C++书>> 来写一写自己的东西.

用Canvas写一个简单的游戏--别踩白块儿

第一次写博客也不知怎么写,反正就按照我自己的想法来吧!怎么说呢?还是不要扯那些多余的话了,直接上正题吧! 第一次用canvas写游戏,所以挑个简单实现点的来干:别踩白块儿,其他那些怎么操作的那些就不用再扯了,大家应该都懂,不懂的看到黑色的就点就是了,扯多了我打字手也累,大概.链接给你们:http://nowtd.cn/white/ 咱不是理论派,所以在这里不会扯多少理论. 首先看看html的结构吧 1 <header class="container"> 2 <art

用CSS写一个简单的幻灯片效果页面

这里是修真院前端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析前端知识/技能,本篇分享的是: [用CSS写一个简单的幻灯片效果页面] 1.背景介绍CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation. transform属性向元素应用2D或3D转换.该属性允许我们对元素进行旋转.缩放.移动或倾斜. transition是令一个或多个可以用数值表示的css属性值

2014-5-27 今天我想写一写“思杨是个小吃货”

今天我想写一写"思杨是个小吃货" 哈哈,和宝宝在一起总是很开心,很愉快.虽然我的能量和他的不在一个Level上.人家是啥时候都精力旺盛而且不知疲惫. 昨天奶奶炒了个西葫芦,思杨指着其中一片说 给我这个. 我就随便给他夹了个小点的.他就嘟着嘴不吃,而且哭个嗓子说这个,这个... 哈哈,经奶奶提醒我才明白,他的手指的是一片大的,他要那个大点的.我给他的太小了.于是,我夹大的给他,他开心了 哈哈. 其实爸爸是觉得小的入味. 最近好像有个苗苗小朋友去家里玩.思杨老实说这是我的,那是我的.哎 ,