zoukankan      html  css  js  c++  java
  • 打印斐波那契(Fibonacci)数列

    需求:打印 Fibonacci数列

    思路:
    当前项的值等于前两项数值的和
    F=(F-1)+F(F-2)

    样例:
    输入:10
    输出:1 1 2 3 5 8 13 21 34 55

    辗转相加法实现

    #include<stdio.h>
    int main()
    {
    	int num, f, f1, f2, i;
    	scanf("%d", &num);    //用户输入打印的次数
    	f1 = f2 = 1;
    	
    	for(i = 1; i <= num; i++)    //打印的次数
    	{
    		if(i==1 || i==2)	//第一项第二项数值都是 1
    			printf("%d  ", f1);
    		else	
    			{
    				f = f1+f2;
    				f1 = f2;    //    移动数值
                                    f2 = f;
    				printf("%d  ", f);
    			}
    	}
    	return 0; 
    } 
    

    递归实现

    #include<stdio.h>
    int fibo(int);
    int main()
    {
    	int num, i;
    	scanf("%d", &num);
    	for(i = 1; i <= num; i++)
    		printf("%d  ", fibo(i));
    	return 0; 
    } 
    int fibo(int n)
    {
    	if(n==1 || n==2)
    		return 1;
    	else
    		return fibo(n-1)+fibo(n-2);
    }
    
  • 相关阅读:
    5 November
    31 October
    K-th Path
    P1525 关押罪犯
    dp-棋盘形dp
    P1462 通往奥格瑞玛的道路
    noip2017部分题目
    洛谷orz--尺取法
    树形dp
    最短路练习
  • 原文地址:https://www.cnblogs.com/rancvl/p/5204891.html
Copyright © 2011-2022 走看看