php递归函数详解_用php递归函数实现阶乘计算

php递归函数详解_用php递归函数实现阶乘计算本节内容:PHP递归算法。PHP递归算法代码:复制代码代码示例://定义PI一分的角度的值define(“PII”,M_PI/180);//新建图像资源,并定义其背景为白色,前景色为黑色$im=imagecreate(670,500);$white=imagecolorallocate($im,0xFF,0xFF,0xFF);$g=imagecolorallocate($im,0x00,0x0…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

本节内容:

PHP递归算法。

PHP递归算法代码:

复制代码 代码示例:

//定义PI一分的角度的值 define(“PII”,M_PI/180);

//新建图像资源,并定义其背景为白色,前景色为黑色

$im=imagecreate(670,500);

$white=imagecolorallocate($im,0xFF,0xFF,0xFF);

$g=imagecolorallocate($im,0x00,0x00,0x00);

//从下面实例化的代码可以得知,初始值$x,$y,$L,$a别分为300,500,100,270

functiondrawLeaf($g,$x,$y,$L,$a)

{ global$im; $B=50; $C=9; $s1=2; $s2=3; $s3=1.2;

if($L>$s1){

//计算叶子的定位上面

$x2=$x+$L*cos($a*PII);

$y2=$y+$L*sin($a*PII);

$x2R=$x2+$L/$s2*cos(($a+$B)*PII);

$y2R=$y2+$L/$s2*sin(($a+$B)*PII);

$x2L=$x2+$L/$s2*cos(($a-$B)*PII);

$y2L=$y2+$L/$s2*sin(($a-$B)*PII);

//计算叶子的定位下面

$x1=$x+$L/$s2*cos($a*PII);

$y1=$y+$L/$s2*sin($a*PII);

$x1L=$x1+$L/$s2*cos(($a-$B)*PII);

$y1L=$y1+$L/$s2*sin(($a-$B)*PII);

$x1R=$x1+$L/$s2*cos(($a+$B)*PII);

$y1R=$y1+$L/$s2*sin(($a+$B)*PII);

//别分画叶子的主干以及叶面

ImageLine($im,(int)$x,(int)$y,(int)$x2,(int)$y2,$g);

ImageLine($im,(int)$x2,(int)$y2,(int)$x2R,(int)$y2R,$g);

ImageLine($im,(int)$x2,(int)$y2,(int)$x2L,(int)$y2L,$g);

ImageLine($im,(int)$x1,(int)$y1,(int)$x1L,(int)$y1L,$g);

ImageLine($im,(int)$x1,(int)$y1,(int)$x1R,(int)$y1R,$g);

//再次递归调用本身

drawLeaf($g,$x2,$y2,$L/$s3,$a+$C);

drawLeaf($g,$x2R,$y2R,$L/$s2,$a+$B);

drawLeaf($g,$x2L,$y2L,$L/$s2,$a-$B);

drawLeaf($g,$x1L,$y1L,$L/$s2,$a-$B);

drawLeaf($g,$x1R,$y1R,$L/$s2,$a+$B);

}

}

//实例化

drawLeaf($g,300,500,100,270);

header(“Content-type:image/png”);

imagepng($im);

?>

递归调用常常与静态变量使用。

静态变量的含义可以参考PHP手册。

例子,加深对PHP递归算法以及静态变量的理解。

复制代码 代码示例:

header(“Content-type:text/plain”); functionstatic_function()

{

static$i=0;

if($i++<10)

{

echo$i.”\n”;

static_function();

}

}

static_function();

以上PHP递归算法代码会如数输出1到10的数字。

在static_function函数第二次运行时,变量i由于是静态变量,所以仍被保留不被释放,进而可以得到自增的值。

以上介绍了php递归算法的实现代码与用法,希望对大家有所帮助。

php递归函数小例子

php递归算法 php递归函数无限级分类

PHP递归算法与应用实例

php递归算法应用实例

php递归实现无限分类 php格式化数组

php递归方法实现无限分类示例

php递归遍历目录的二个函数

php用递归方法实现无限级分类的代码

php递归创建和删除文件夹的代码

php递归删除目录的例子

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169563.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 情人节来了,教你个用 Python 表白的技巧「建议收藏」

    情人节来了,教你个用 Python 表白的技巧「建议收藏」作者:@明哥公众号:Python编程时光2020年,这个看起来如此浪漫的年份,你还是一个人吗?难不成我还能是一条狗?18年的时候,写过一篇介绍如何使用Python来表白的文章。虽然创意和使用效果都不错,但有一缺点,这是那个exe文件,女神需要打开电脑,才有可能参与进来,进而被你成功”调戏”。由于是很早期的文章了,应该有很多人没有看过。没有看过的,你可以点击这里查看:用Python写一个表白神器让你脱离单身提醒你一下,后天就是2月14日了。什么?还是一条狗呢?行吧,那你赶上了,今

    2022年6月2日
    35
  • java游戏激活成功教程版盒子,37游戏盒子-37游戏盒子最新版 v4.0.0.4 官方版[通俗易懂]

    java游戏激活成功教程版盒子,37游戏盒子-37游戏盒子最新版 v4.0.0.4 官方版[通俗易懂]37游戏盒子37游戏盒子最新版是一款提供游戏下载辅助软件。37游戏盒子最新版内置海量游戏而且不断更新,让玩家不必到处找游戏。而且还会自动去检测游戏所需要的软件和硬件环境,玩家只需轻松一点,就可以实现游戏的下载、安装、运行全部过程。37游戏盒子最新版特色说明:1、内置海量游戏,不断更新,不必到处找游戏。2、只需轻松一点,实现游戏的下载、安装、运行,减少用户麻烦,节省玩家时间。3、斥资千万,全新搭建智…

    2022年7月7日
    42
  • java打包jar和war的区别[通俗易懂]

    java打包jar和war的区别[通俗易懂]jar和war包,都是为了项目的部署和发布,把项目打包,同茶馆在部署打包的时候,在里面加上部署的信息(把代码和依赖压缩在成一个编译器可以直接使用的压缩文件,eg:tomcat先解压,编译,缺点是随着文件的增加,启动变慢)相同点:都是压缩文件,用解压文件可以解压不同点:war是javaweb打的包,jar是java打的包 jar只用于java来写的项目打包,里面只有编译后的class…

    2022年5月18日
    84
  • 杂记—-「建议收藏」

    杂记—-「建议收藏」1.echo命令会覆盖之前文件里面的东西

    2022年6月14日
    32
  • 【STM32】NVIC中断优先级管理(中断向量表)

    【STM32】NVIC中断优先级管理(中断向量表)STM32F1xx官方资料:《STM32中文参考手册V10》-第9章中断和事件Cortex-M3内核支持256个中断,其中包含了16个内核中断(异常)和240个外部中断,并且具有256级的可编程中断设置。但是,STM32并没有使用CM3内核的全部东西,而是只用了它的一部分。STM32有84个中断,包括16个内核中断(异常)和68个可屏蔽中断,具有16级可编程的中断优先级。而STM32F10…

    2022年5月28日
    290
  • CAD拉伸的快捷命令_cad拉伸实体快捷键

    CAD拉伸的快捷命令_cad拉伸实体快捷键CAD快捷键在CAD绘图中是不可或缺的,刚入门CAD的小伙伴们一定要熟练掌握常用CAD快捷键命令的使用。那么CAD拉伸快捷键命令是什么呢?又该如何使用呢?下面小编就来给大家介绍一下浩辰CAD软件中CA

    2022年8月4日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号