斐波那契数 c 语言实现
斐波那契数列,又称黄金数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=1,F(n)=F(n-1)+F(n-2)(n>2,n∈N*)。
第一种实现方法可以通过其定义得知:递归
int Fib2(int num)
{
int fib = ; assert(num > ); if(num < )
fib = ;
else
fib = Fib2(num - ) + Fib2(num -); return fib;
}
第二种方法:迭代
int Fib1(int num)
{
int i = ;
int j = ;
int tmp = ;
int index = ; assert(num > ); for(index = ;index < num; index++)
{
tmp = i + j;
i = j;
j = tmp;
}
return tmp;
}
两种方法优劣,运行比较很容易得出
#include<stdio.h>
#include<assert.h> int Fib1(int num)
{
int i = ;
int j = ;
int tmp = ;
int index = ; assert(num > ); for(index = ;index < num; index++)
{
tmp = i + j;
i = j;
j = tmp;
}
return tmp;
} int Fib2(int num)
{
int fib = ; assert(num > ); if(num < )
fib = ;
else
fib = Fib2(num - ) + Fib2(num -); return fib;
} void displayFib(int num)
{
int i = ;
for(i = ; i <= num; i++)
{
printf("%d ",Fib1(i));
}
printf("%\n");
for(i = ; i <= num; i++)
{
printf("%d ",Fib2(i));
}
printf("\n");
} int main()
{
int num = ;
printf("please enter a unsinged int number(enter 0 quit):\n");
scanf("%d",&num);
while(num)
{
displayFib(num);
printf("please enter a unsinged int number(enter 0 quit):\n");
scanf("%d",&num);
}
return ;
}
斐波那契数 c 语言实现的更多相关文章
- 求斐波那契数的python语言实现---递归和迭代
		迭代实现如下: def fab(n): n1 = 1 n2 = 1 if n<1: print("输入有误!") return -1 while (n-2)>0: n3 ... 
- 力扣(LeetCode) 509. 斐波那契数
		斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列.该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和.也就是: F(0) = 0, F(1) = 1 F(N) = F(N ... 
- UVA 11582 Colossal Fibonacci Numbers! 大斐波那契数
		大致题意:输入两个非负整数a,b和正整数n.计算f(a^b)%n.其中f[0]=f[1]=1, f[i+2]=f[i+1]+f[i]. 即计算大斐波那契数再取模. 一开始看到大斐波那契数,就想到了矩阵 ... 
- 斐波那契数[XDU1049]
		Problem 1049 - 斐波那契数 Time Limit: 1000MS Memory Limit: 65536KB Difficulty: Total Submit: 1673 Ac ... 
- C++求斐波那契数
		题目内容:斐波那契数定义为:f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)(n>1且n为整数) 如果写出菲氏数列,则应该是: 0 1 1 2 3 5 8 13 21 34 …… ... 
- Project Euler 104:Pandigital Fibonacci ends 两端为全数字的斐波那契数
		Pandigital Fibonacci ends The Fibonacci sequence is defined by the recurrence relation: F[n] = F[n-1 ... 
- DP:斐波纳契数
		题目:输出第 n 个斐波纳契数(Fibonacci) 方法一.简单递归 这个就不说了,小n怡情,大n伤身啊……当n=40的时候,就明显感觉到卡了,不是一般的慢. //输出第n个 Fibonacci 数 ... 
- HDU4549 M斐波那契数
		M斐波那契数列 题目分析: M斐波那契数列F[n]是一种整数数列,它的定义例如以下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n > 1 ) 如今给 ... 
- HDU 5914 Triangle(打表——斐波那契数的应用)
		题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5914 Problem Description Mr. Frog has n sticks, whos ... 
随机推荐
- 详解C/C++函数指针声明     ( *( void(*)())0)();
			( *( void(*)())0)(); float *pf; 这个声明的含义是*pf是一个浮点数,也就是说,pf是一个指向浮点数的指针. float *g() , (*h)(); 表示*g()与( ... 
- mydumper原理5
			前言 之前介绍了Oracle官方的多线程逻辑导入导出工具mysqlpump,但已经操作过的同学会发现其多线程的单位还是表,换句话说, 单表依然是 单线程导出 .网易早已使用mydumper/myloa ... 
- 写了个SharedPreferences的工具类(带加密)
			/* * Copyright (C) 2014 Jason Fang ( ijasonfang@gmail.com ) * * Licensed under the Apache License, V ... 
- 真机下, 如何在File Explorer里看data下的数据?
			首先手机得Root , 你如果想单个单个的看, root explorer可以设置Permission Other下的两个权限点上就ok了. 如果想看到所有的, 即子目录也可以看到, 只需要adb r ... 
- vs 行数
			工具->选项->文本编辑器->选择你用的语言,选中行号,即可! 
- C笔记01:关于printf函数输出先后顺序的讲解
			关于printf函数输出先后顺序的讲解!! 对于printf函数printf("%d%d\n", a, b);函数的实际输出顺序是这样的先计算出b,然后再计算a,接着输出a,最后再 ... 
- [Android]Log打印
			package com.lurencun.android.system; import android.util.Log; public class ExLog { static final Stri ... 
- javaweb学习总结十六(tomcat服务器的使用、虚拟目录的映射)
			一:tomcat服务器的目录 1:目录结构 2:web应用程序介绍 二:虚拟目录的映射 假如我在E盘建立一个目录web,里面存放1.html文件,我想让外界访问 1:直接在conf目录下的server ... 
- 一些网摘的hpc材料
			source from: https://computing.llnl.gov Factors determines a large-scale program's performance 4 ... 
- Mina的线程模型
			在Mina的NIO模式中有三种I/O工作线程(这三种线程模型只在NIOSocket中有效,在NIO数据包和虚拟管道中没有,也不需要配置): IoAcceptor/IoConnector线程 IoPro ... 
