using System;

namespace ConsoleApp3
{
class Program
{
static void Main(string[] args)
{
Console.Write("你要输入多少项?");
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine();
DateTime dt1 = System.DateTime.Now;
for (int i = ; i <= a; i++)
{
Console.Write("\t{0}", J(i));
if (i % == )
{
Console.WriteLine();
}
}
DateTime dt2 = System.DateTime.Now;
TimeSpan ts = dt2.Subtract(dt1);
Console.WriteLine("3变量循环方法用时{0}", ts.TotalMilliseconds);//3变量循环方法所用时间 DateTime dt11 = System.DateTime.Now;
for (int i = ; i <= a; i++)
{
Console.Write("\t{0}", J1(i));
if (i % == )
{
Console.WriteLine();
}
}
DateTime dt22 = System.DateTime.Now;
TimeSpan ts1 = dt22.Subtract(dt11);
Console.WriteLine("2变量循环方法用时{0}", ts1.TotalMilliseconds);//2变量循环方法所用时间 DateTime dt111 = System.DateTime.Now;
for (int i = ; i <= a; i++)
{
Console.Write("\t{0}", J2(i));
if (i % == )
{
Console.WriteLine();
}
}
DateTime dt222 = System.DateTime.Now;
TimeSpan ts11 = dt222.Subtract(dt111);
Console.WriteLine("递归方法用时{0}", ts11.TotalMilliseconds);//递归方法所用时间
}
/// <summary>
/// 3个变量循环求斐波那契数列
/// </summary>
/// <param name="b"></param>
/// <returns></returns>
static int J(int b)
{
int x = ;
int y = ;
if (b == || b == )
{
return ;
}
else
{
for (int i = ; i <= b; i++)
{
int z = x + y;
y = x;
x = z;
}
return x;
}
}
/// <summary>
/// 2个变量循环求斐波那契数列
/// </summary>
/// <param name="b"></param>
/// <returns></returns>
static int J1(int b)
{
int x = ;
int y = ;
if (b == || b == )
{
return ;
}
else
{
for (int i = ; i <= b; i++)
{
y = x + y;
x = y-x;
}
return y;
}
} /// <summary>
/// 阶乘求斐波那契数列
/// </summary>
/// <param name="b"></param>
/// <returns></returns>
static int J2(int b)
{
if (b == || b == )
{
return ;
}
else
{
return J2(b - ) + J2(b - );
}
}
}
}

C#斐波那契数列求法(比较阶乘和循环所用时间)的更多相关文章

  1. 剑指offer【07】- 斐波那契数列(java)

    题目:斐波那契数列 考点:递归和循环 题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0),n<=39. 法一:递归法,不过递归比较慢, ...

  2. 求斐波那契数列的第n项

    问题描述:斐波那契数列是这样的一个数列,1,1,2,3,5,8,..,即前两项都是1,后面每一项都是其前面两项的和. 现在要你求出该数列的第n项. 分析:该问题是一个经典的数列问题,相信大家在很多语言 ...

  3. hdu4549 M斐波那契数列 矩阵快速幂+快速幂

    M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = aF[1] = bF[n] = F[n-1] * F[n-2] ( n > 1 ) 现在给出a, b, n,你能求出F[n]的 ...

  4. PHP斐波那契数列

    一个斐波那契数列的求法 1 1 2 3 5 8 13 21 34 55 要求写出算法   //数组法 function test($num){ $arr=[]; for($i=0;$i<=$nu ...

  5. C#求斐波那契数列第30项的值(递归和非递归)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  6. 斐波拉契数列加强版——时间复杂度O(1),空间复杂度O(1)

    对于斐波拉契经典问题,我们都非常熟悉,通过递推公式F(n) = F(n - ) + F(n - ),我们可以在线性时间内求出第n项F(n),现在考虑斐波拉契的加强版,我们要求的项数n的范围为int范围 ...

  7. js中的斐波那契数列法

    //斐波那契数列:1,2,3,5,8,13…… //从第3个起的第n个等于前两个之和 //解法1: var n1 = 1,n2 = 2; for(var i=3;i<101;i++){ var ...

  8. 剑指Offer面试题:8.斐波那契数列

    一.题目:斐波那契数列 题目:写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项.斐波那契数列的定义如下: 二.效率很低的解法 很多C/C++/C#/Java语言教科书在讲述递归函数的时 ...

  9. 算法: 斐波那契数列C/C++实现

    斐波那契数列: 1,1,2,3,5,8,13,21,34,....     //求斐波那契数列第n项的值 //1,1,2,3,5,8,13,21,34... //1.递归: //缺点:当n过大时,递归 ...

随机推荐

  1. CCPC Wannafly Winter Camp Div2 部分题解

    Day 1, Div 2, Prob. B - 吃豆豆 题目大意 wls有一个\(n\)行\(m\)列的棋盘,对于第\(i\)行第\(j\)列的格子,每过\(T[i][j]\)秒会在上面出现一个糖果, ...

  2. java基础- Java编程规范与注释

    一 前言 java编程规约是指在java代码编写过程中通俗的约定:通常我们是要遵守这些规范:这好比我们在生活中要遵守的道德准则,如果你做的事情超出了道德的底线,那就有可能会受到社会抨击:在java编程 ...

  3. 百万级高并发mongodb集群性能数十倍提升优化实践

    背景 线上某集群峰值TPS超过100万/秒左右(主要为写流量,读流量很低),峰值tps几乎已经到达集群上限,同时平均时延也超过100ms,随着读写流量的进一步增加,时延抖动严重影响业务可用性.该集群采 ...

  4. 权值初始化 - Xavier和MSRA方法

    设计好神经网络结构以及loss function 后,训练神经网络的步骤如下: 初始化权值参数 选择一个合适的梯度下降算法(例如:Adam,RMSprop等) 重复下面的迭代过程: 输入的正向传播 计 ...

  5. C#8.0中新特性之一:结构readonly成员

    结构struct成员支持readonly,用来限制被其修饰的成员不会改变结构的内部状态.加上7.2版本添加的readonly struct和ref readonly方法返回以及之前的字段声明修饰作用, ...

  6. 软帝学院:一万字的Java基础知识总结大全(实用)

    Java基础总结大全(实用) 一.基础知识: 1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. java语言是跨 ...

  7. python函数中参数的传递

    Python唯一支持的参数传递方式是『共享传参』(call by sharing)多数面向对象语言都采用这一模式,包括Ruby.Smalltalk和Java(Java的引用类型是这样,基本类型按值传递 ...

  8. JavaScript Map 和 Set

    结论 Map:存放键值对,区别于 Object,键可以是任何值. Set:存放不重复的值 Map 存储键值对,读取时与插入顺序一致. var map = new Map([[1, "1&qu ...

  9. sap-abap 权限控制

    FORM AUTH_CHECK . "工厂 LOOP AT S_WERKS. AUTHORITY-CHECK OBJECT 'M_BANF_WRK' ID 'WERKS' FIELD S_W ...

  10. 打包vue文件,上传到服务器

    主要步骤: 1. npm run build生成dist文件夹 2. 将dist文件夹上传到服务器上 3. 服务器上配置nginx,访问路径指向dist文件夹下的index.html,这样当访问ngi ...