04-语言入门-04-Fibonacci数
2016-01-19 09:36
211 查看
地址: http://acm.nyist.net/JudgeOnline/problem.php?pid=13
描述
无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递归地定义为
F(n)=1 ...........(n=1或n=2)
F(n)=F(n-1)+F(n-2).....(n>2)
现要你来求第n个斐波纳奇数。(第1个、第二个都为1)
输入
第一行是一个整数m(m<5)表示共有m组测试数据
每次测试数据只有一行,且只有一个整形数n(n<20)
输出
对每组输入n,输出第n个Fibonacci数
样例输入
3
1
3
5
样例输出
1
2
5
#include <stdio.h>
static int calFibonacci(int n);
int main()
{
int readLen = 0;
scanf("%d",&readLen);
getchar();
while(readLen > 0)
{
int calN = 0;
scanf("%d",&calN);
getchar();
int result = calFibonacci(calN);
printf("%d\n",result);
--readLen;
}
return 0;
}
static int calFibonacci(int n)
{
if(n<1)
{
return 0;
}
if(n<3)
{
return 1;
}
int left = 1;
int right = 1;
int sum = 0;
int i=3;
for(;i<n;++i)
{
sum = left + right;
left = right;
right = sum;
}
return left + right;
}
描述
无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递归地定义为
F(n)=1 ...........(n=1或n=2)
F(n)=F(n-1)+F(n-2).....(n>2)
现要你来求第n个斐波纳奇数。(第1个、第二个都为1)
输入
第一行是一个整数m(m<5)表示共有m组测试数据
每次测试数据只有一行,且只有一个整形数n(n<20)
输出
对每组输入n,输出第n个Fibonacci数
样例输入
3
1
3
5
样例输出
1
2
5
#include <stdio.h>
static int calFibonacci(int n);
int main()
{
int readLen = 0;
scanf("%d",&readLen);
getchar();
while(readLen > 0)
{
int calN = 0;
scanf("%d",&calN);
getchar();
int result = calFibonacci(calN);
printf("%d\n",result);
--readLen;
}
return 0;
}
static int calFibonacci(int n)
{
if(n<1)
{
return 0;
}
if(n<3)
{
return 1;
}
int left = 1;
int right = 1;
int sum = 0;
int i=3;
for(;i<n;++i)
{
sum = left + right;
left = right;
right = sum;
}
return left + right;
}
相关文章推荐
- Android仿QQ好友列表分组实现增删改及持久化
- 深度学习与计算机视觉系列(4)_最优化与随机梯度下降\数据预处理,正则化与损失函数
- 数据结构与算法学习
- poj 1611 The Suspects(并查集)
- setbuf函数使用注意事项
- Android调用系统相机拍照并保存到指定位置
- 03-语言入门-03-奇偶数分离
- 项目管理十大知识范围
- Centos下:/usr/bin/ld: cannot find -lXext
- java学习—day_6
- 网站cookie.js
- tableview或者ScrollView看不到边界以外的内容
- 系统学习机器学习之线性判别式(二)
- float类型在值传递过程中出现的问题
- UVa 12049 - Just Prune The List
- 泛型算法(四)之计数算法
- 02-语言入门-02-ASCII码排序
- 谈谈ES的Recovery
- Duilib介绍以及各个类的简介
- git 使用教程