技术标签: acm
比赛描述
在数学上,斐波那契数列(Fibonacci Sequence),是以递归的方法来定义:
F0 = 0
F1 = 1
Fn = Fn - 1 + Fn - 2
用文字来说,就是斐波那契数列由0和1开始,之后的斐波那契数就由之前的两数相加。首几个斐波那契数是:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946,………………
特别指出:0不是第一项,而是第零项。
在西方,最先研究这个数列的人是比萨的列奥纳多(又名斐波那契),他描述兔子生长的数目时用上了这数列。
n 第一个月有一对刚诞生的兔子
n 第两个月之后它们可以生育
n 每月每对可生育的兔子会诞生下一对新兔子
n 兔子永不死去
假设在n月有新生及可生育的兔子总共a对,n+1月就总共有b对。在n+2月必定总共有a+b对:因为在n+2月的时候,所有在n月就已存在的a对兔子皆已可以生育并诞下a对后代;同时在前一月(n+1月)之b对兔子中,在当月属于新诞生的兔子尚不能生育。
现请以较短的时间,求出斐波那契数列第n项数值,0≤n≤40。
输入
斐波那契数列项数n,0≤n≤40。
输出
斐波那契数列第n项数值
样例输入
4
样例输出
3
题目来源
NUPT
#include<stdio.h>
int fun(int a)
{
if(a == 0)
return 0;
if(a==1 || a==2)
return 1;
else
return fun(a-1) + fun(a-2);
}
int main()
{
int a = 0;
scanf("%d", &a);
if(a> 40)
return 0;
int sum = fun(a);
printf("%d\n", sum);
return 0
}
#include<stdio.h>
#define N 41
int main()
{
int num = 0, sum = 0;
int a[N]={0};
a[0] = 0;
a[1] = 1;
a[2] = 1;
int i =0;
scanf("%d", &num);
if(num > 40)
if(num == 0)
{
printf("0\n");
return 0;
}
else if(num == 1 || num == 2)
{
printf("1\n"); return 0;
}
for(i=3; i<=num; i++)
{
if(a[i] == 0)
{
a[i] = a[i - 1] + a[i-2];
}
}
printf("%d\n", a[num]);
return 0;
}
#include<stdio.h>
#include <sys/time.h>
int fun(int a)
{
if(a == 0)
return 0;
if(a==1 || a==2)
return 1;
else
return fun(a-1) + fun(a-2);
}
int main()
{
struct timeval start, end;
gettimeofday(&start, NULL);
int a = 40;
// scanf("%d", &a);
if(a> 40)
return 0;
int sum = fun(a);
gettimeofday(&end, NULL);
printf("%d\n", sum);
int timeuse = 1000000*(end.tv_sec -start.tv_sec) + end.tv_usec - start.tv_usec;
printf("seconds: %d us\n", timeuse);
return 0 ;
}
#include<stdio.h>
#include<sys/time.h>
#define N 41
int main()
{
struct timeval start, end;
gettimeofday(&start, NULL);
int num = 40, sum = 0;
int a[N]={0};
a[0] = 0;
a[1] = 1;
a[2] = 1;
int i =0;
// scanf("%d", &num);
if(num > 40)
if(num == 0)
{
printf("0\n");
return 0;
}
else if(num == 1 || num == 2)
{
printf("1\n"); return 0;
}
for(i=3; i<=num; i++)
{
if(a[i] == 0)
{
a[i] = a[i - 1] + a[i-2];
}
}
printf("%d\n", a[num]);
gettimeofday(&end, NULL);
<span style="white-space:pre"> </span>int timeuse = 1000000*(end.tv_sec -start.tv_sec) + end.tv_usec - start.tv_usec;
printf("seconds: %d us\n", timeuse);
return 0;
}
文章浏览阅读262次。转载:https://blog.csdn.net/ohmygirl/article/details/17849983上文( http://blog.csdn.net/ohmygirl/article/details/17846199 )中已经介绍了Fiddler的原理和软件界面。本文主要针对Fiddler的抓包处理。Fiddler抓取HTTP请求。抓包是Fiddler..._3)使用fiddler分析http请求
文章浏览阅读4.1k次,点赞6次,收藏55次。引言Ceres 是由Google开发的开源C++通用非线性优化库(项目主页),与g2o并列为目前视觉SLAM中应用最广泛的优化算法库(VINS-Mono中的大部分优化工作均基于Ceres完成)。Ceres中的有限边界最小二乘问题建模为以下形式:Ceres的求解过程包括构: 建最小二乘和求解最小二乘问题 两部分,其中构建最小二乘问题的相关方法均包含在Ceres::Problem类中,涉及的成员函数主要包括 Problem::AddResidualBlock()和 Problem::AddP_对‘ceres::problem::addparameterblock(double*, int, ceres::localparameteriza
文章浏览阅读265次。摘 要本文分析了hello程序的整个运行生命周期。首先编写hello.c源程序,之后运行C预处理器对其进行预处理,得到hello.i文件,运行C编译器将翻译生成汇编语言文件hello.s,然后运行汇编器将其翻译成一个可重定位目标文件hello.o,最后运行链接器程序将hello.o和系统目标文件组合起来,就可以创建一个可执行目标文件hello。在shell接收到输入的./hello的指令后开始调用fork函数创建进程,execve加载hello进入内存,由CPU控制程序逻辑流的运行,中断,上下文切换和._郭仁恺
文章浏览阅读4.6k次。此处我们使用的是AES的基础加密模式,即:电码本模式 ECBJAVA代码如下: //创建AES加密实例 SecretKeySpec skeySpec = new SecretKeySpec(keyBytes, "AES"); Cipher cip = Cipher.getInstance("AES/ECB/NoPadding");//算法/模式/补码方式 cip.init(C_botan c++ aes java 互通
文章浏览阅读2.5k次,点赞5次,收藏17次。2018年3月,我与张老师就这么在微信上聊了起来,起初我并没有写书的打算,我们之间只是通过讨论、交流的形式聊聊关于出书的方方面面。最终,敌不过张老师超强的专业能力、细致的解说与盛情相邀,我答应张老师写一本Linux系统运维的图书并由人邮出版。由此,我踏上了漫漫2年多的写书之路。为什么写这本书写书一方面是我对自己所学知识的查漏补缺过程,另一方面也可以向即将进入或已经入行的Linux系统运维同..._linux系统运维指南:从入门到企业实战 pdf
文章浏览阅读2k次,点赞6次,收藏5次。tf.reduce_sum()函数深度解析从矩阵,数组,数据存储的角度 解析axis参数的意义_tf.reduce_sum
文章浏览阅读10w+次,点赞41次,收藏141次。 _rmse函数
文章浏览阅读370次。秋叶 PPT 双 12 大促年终盛典全场精品课享年度超值价买课赠书最高立省 801本文作者:小爽本文审核:玛奇鹅本文编辑:竺兰大家好,我是继续挖掘 Excel 各种技巧的小爽~在工作中,我们经常需要在 Excel 中填写一些固定选项的数据。对于「懂点 Excel」的小伙伴来说,一般会选择用【数据验证】的功能制作下拉列表。不过一旦数据选项过多,用下拉列表选择还是会显得比较麻烦,手还很累。..._isnumber(find(cell("contents")
文章浏览阅读888次。学习笔记|按键原理|消抖|按键点灯的4种模式|STC32G单片机视频开发教程(冲哥)|第七集:按键点灯_stm32定时器实现一个按键切换四个模式
文章浏览阅读1.2k次。VMware ESX 3.0已经发布了三年多时间,目前有很多用户希望升级到VMware最新的vSphere 4.0虚拟化平台,而大量运行ESX 3.0的服务器也到了需要更新换代的时刻。这些运行了三年ESX 3.0的老旧服务器虽然已经不能完全满足未来快速增长的负载需求,但还是具有不小的性能空间,将这一大批当时非常昂贵的服务器关闭弃之不用,确实显得有些浪费。为了不将老旧的虚拟化主机丢弃在角落,很多企业..._旧服务器虚拟化
文章浏览阅读132次。JS中字符串和数组的常用方法JS中字符串和数组的常用方法 js中字符串常用方法 查找字符串 根据索引值查找字符串的值 根据字符值查找索引值 截取字符串的方法 字符串替换 字符串的遍历查找 字符串转化为数组 ..._js根据索引查找字符串
文章浏览阅读2k次,点赞2次,收藏9次。系列文章目录hadoop大数据-HDFS分布式文件系统hadoop大数据-HDFS分布式文件系统系列文章目录一、hadoop简介二、Hadoop的搭建2.1本地独立模式2.1伪分布式模式的搭建完成分布式的搭建完全分布式的环境搭建完全分布式的配置hadoop结点扩容四、HDFS工作原理一、hadoop简介大数据主要两个点:分布式存储以及分布式计算,基本上计算的调度跟着存储走,因为迁移存储的成本高于计算大数据是个生态,本次学习Hadoop的HDFS分布式文件系统MapReduce离线计算GF_hdfs实现高可用文件存储