扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
给定一个正整数n计算出对应斐波那契数列对应的值
专业成都网站建设公司,做排名好的好网站,排在同行前面,为您带来客户和效益!创新互联为您提供成都网站建设,五站合一网站设计制作,服务好的网站设计公司,网站制作、成都网站建设负责任的成都网站制作公司!
说明:
用mackbookpro i7 2.7GHZ笔记本进行测试,结果如下:
备注: 当n=80时,由于测试等待时间过长,强制中断了执行。
从测试结果看出,当n逐渐增大,递归方式计算斐波拉契数列的时间复杂性急剧增加。当n值较大时可以考虑用循环方式代替。
类似的方式也可以用于,求阶乘、遍历目录、汉诺塔等问题的解决。在后期的文章中,我将这些内容进行补充,敬请期待,谢谢。
Func函数是包含在Function和End Function语句之间的一组VBScript语句。
Func函数与Sub过程类似。但Func函数可以有返回值。可以使用参数。如果Func函数没有任何参数,则Function语句必须要包含空括号。Func函数通过函数名返回一个值。返回值的数据类型是Variant。
语法: Function 函数名 (参数1,参数2,...)
...
End Function
func在go语言中的使用:
在 Go 语言中,函数声明通用语法如下:
func functionname(parametername type) returntype {
// 函数体(具体实现的功能)
}
函数的声明以关键词 func 开始,后面紧跟自定义的函数名 functionname (函数名)。函数的参数列表定义在 ( 和 ) 之间,返回值的类型则定义在之后的 returntype (返回值类型)处。
声明一个参数的语法采用 参数名 参数类型 的方式,任意多个参数采用类似 (parameter1 type, parameter2 type) 即(参数1 参数1的类型,参数2 参数2的类型)的形式指定。之后包含在 { 和 } 之间的代码,就是函数体。
阶乘计算机阶乘编辑阶乘Logo语言Logo语言因为是少儿的学习语言,阶乘方法要复杂一些,而且时间较慢,下面是低精度、高精度、统计位数的阶乘算法:TODJDJC:N;低精度阶乘MAKES1;累乘器开始的值是1FORI1:N[MAKES:S*:I](PR:N[!]:S)ENDTOGJDJC:N;高精度阶乘IF:N1000THENPR请输入不大于999的数!STOPMAKEPRECISION6;计算显示位数设定为六位MAKEAARRAY860;定义数组空间0859组ASET:A11;乘法数组第1空间赋值为1FORI2859[ASET:A:I0];其他数组空间赋值为0FORI1:N[JC:I];调用阶乘过程MAKEK0;数组空间是0的标记MAKEZ0;总共有多少组数字的标记MAKEWS0;累加总共有多少位的计数器TYPE:NTYPE[!];从高位到低位显示计算结果FORM1859[XXS860:M]PR[]TYPE[这是一个]TYPE:WSTYPE[位数]PR[]ENDTOJC:I;计算阶乘的过程FORJ1858[CF:I:J];对所有数组空间逐一计算乘法FORJ1858[CLJW:J];处理乘法过程中的进位ENDTOCF:I:J;计算乘法的过程MAKEZJAGET:A:JMAKEZJ:ZJ*:I;I是阶乘中需要累乘的数ASET:A:J:ZJENDTOCLJW:J;处理进位的过程MAKEXAGET:A:JIF:X1000THENGOXXX;处理没有进位的数组MAKEJINWEIINT(:X/1000);截取小于1000的尾数MAKEWEISHU:X:JINWEI*1000;截取进位的数字ASET:A:J:WEISHU;存储尾数MAKEYAGET:A:J+1MAKEY:Y+:JINWEIASET:A:J+1:Y;向上进位LABELXXXENDTOXXS:P;显示计算结果的过程MAKENNAGET:A:PIF(AND:NN0:K0)THEN[GOEND_]ELSE[MAKEK1MAKEZ:Z+1];避开无效数组IF:Z1THENMAKEWS:WS+(COUNT:NN)GOUP;计算头一个有效数组的位数IF:Z1THENMAKEWS:WS+3;累计数值的总位数IF:NN10THENTYPE[0];填充空位0IF:NN100THENTYPE[0]LABELUPTYPE:NNLABELEND_;越过开头的空数组ENDTOJC:N;求解任意数的阶乘是多少位数MAKES0;先赋值位数为0FORI1:N[MAKES:S+LOG10:I]TYPE[:S]PR:SEND阶乘CommonLisp语言在CommonLisp中,可以很方便的使用更为简洁的使用递归实现阶乘:(defunfactorial(n)(cond((n0)(*(factorial(n1))n))((n0)1)(t(errorNissmallerthan0.))))注意:因为百度不提供任何Lisp语言的代码框,此处使用的是Python的代码框,所以关键字可能无法高亮显示阶乘Python语言在Python中,同样可以使用这种简洁方式实现阶乘的计算:deffactorial(n)if(n1):return1else:returnfactorial(n1)*n阶乘C语言在C语言中,使用循环语句可以很方便的求出阶乘的值,
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流