用递归求菲波拉契序列第N项的值

 1 #include <stdio.h>
 2 /*
 3 题目:用递归求菲波拉契序列第N项的值
 4 */
 5 int func(int n);
 6
 7 int main(void)
 8 {
 9     int N;
10 gogogo:    printf("输入要求的项数(例:求第3项的值输入3)\n");
11         scanf("%d",&N);
12         printf("第%d项的值 = %d\n",N,func(N));
13
14         goto gogogo;
15
16         return 0;
17 }
18 int func(int n)
19 {
20     if(1 == n||2 == n)//结束条件
21         return 1;
22     else
23         return func(n-1)+func(n-2);//通项公式:Fn = Fn-1+Fn-2;
24 }

原文地址:https://www.cnblogs.com/wangchaomahan/p/9549198.html

时间: 2024-10-12 19:10:11

用递归求菲波拉契序列第N项的值的相关文章

求菲波拉契数列第n项的值

public int Solution(int n) { if(n < 3) { return 1; }else { int[] arr = new int[n]; arr[0] = 1; arr[1] = 1; for(int i = 3;i <= n;i++) { arr[i] = arr[i-1] + arr[i-2]; } return arr[n]; } }

C语言-郝斌笔记-005菲波拉契序列

菲波拉契序列 1 /* 2 菲波拉契序列 3 1 2 3 5 8 13 21 34 4 */ 5 6 # include <stdio.h> 7 8 int main(void) 9 { 10 int n; 11 int f1, f2, f3; 12 int i; 13 14 f1 = 1; 15 f2 = 2; 16 17 printf("请输入您需要求的想的序列: "); 18 scanf("%d", &n); 19 20 if (1 ==

随机求斐波拉契数列第n位的代码

1------------------------------------------------------------ package oo.day02;import java.util.Scanner;public class FibonacciSequence { public static void main(String[] args) { System.out.println("请输入斐波拉契数列第n项,n>0"); Scanner scan=new Scanner

黑马入学基础测试(三)求斐波那契数列第n项,n&lt;30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55

.获得用户的输入 计算      3打印就行了.   这里用到了java.util.Scanner   具体API  我就觉得不常用.解决问题就ok了.注意的是:他们按照流体的方式读取.而不是刻意反复读取 自己写的代码: package com.itheima; import java.util.Scanner; public class Test3 { /** * 3.求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55 * * @author

c语言:写一个函数,输入n,求斐波拉契数列的第n项(5种方法,层层优化)

写一个函数,输入n,求斐波拉契数列的第n项. 斐波拉契数列:1,1,2,3,5,8...,当n大于等于3时,后一项为前面两项之和. 解:方法1:从斐波拉契数列的函数定义角度编程 #include<stdio.h> int fibonacci(int n) { int num1=1, num2=1, num3=0,i; if (n <= 2) { printf("斐波拉契数列的第%d项为:%d\n",n,num1); } else { for (i = 2; i <

菲波拉契数列(传统兔子问题)

题目: 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 斐波那契数: 亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列.费波那西数列.费波拿契数.费氏数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*),用文字来说,就

7,菲波拉契数

题目一: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)n<=39 public int Fibonacci(int n) { if(n==0) return 0; if(n==1) return 1; return Fibonacci(n-1)+Fibonacci(n-2); } 题目二: 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). n个台阶:第一次跳一阶,还剩n-

249 递归:概念,利用递归求1~n的阶乘,利用递归求斐波那契数列,利用递归遍历数据

6.1什么是递归 递归:如果一个函数在内部可以调用其本身,那么这个函数就是递归函数. 简单理解: 函数内部自己调用自己, 这个函数就是递归函数 注意:递归函数的作用和循环效果一样,由于递归很容易发生"栈溢出"错误(stack overflow),所以必须要加退出条件return. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"&g

UESTC_菲波拉契数制 2015 UESTC Training for Dynamic Programming&lt;Problem E&gt;

E - 菲波拉契数制 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status 我们定义如下数列为菲波拉契数列: F(1)=1 F(2)=2 F(i)=F(i−1)+F(i−2)(i>=3) 给定任意一个数,我们可以把它表示成若干互不相同的菲波拉契数之和.比如13有三种表示法 13=13 13=5+8 13=2+3+8 现在给你一个数n,请输出把它表示成若干互