首先,从简单的着手,打印出金字塔的右半部分,代码如下

<?php
  $n=5; //金字塔行数
  //外层的for循环控制层数
  for($i=1;$i<=$n;$i++){
    //内层的for循环控制每层*的个数
    for($j=1;$j<=$i;$j++){
      echo"*";
    }
    echo"<br/>"; //每一层打印完换行
  }
?>


然后打印出完整的金字塔,完整的金字塔,在上面的基础下只需要做小小的修改,

<?php
$n=5; //金字塔行数
for($i=1;$i<=$n;$i++){
//在打印*之前,先打印空格
for($k=1;$k<=$n-$i;$k++){
echo"&nbsp;";
}
//内层控制每层*的个数
for($j=1;$j<=2*$i-1;$j++){
echo"*";
}
echo"<br/>";
}
?>

注:把上面的代码复制到php文件中,会出现不知名的错误,应该是格式问题,但是代码是正确的。


然后是空心金字塔,代码如下:

 <?php
$n=5;
for($i=1;$i<=$n;$i++){
for($k=1;$k<=$n-$i;$k++){
echo"&nbsp;";
}
//内层控制每层*的个数
for($j=1;$j<=$i*2-1;$j++){
//第一层和最后一层*不变
if($i==1||$i==$n){
echo"*";
}
//其他层第一个和最后一个位置打印*,其他位置打印空格
else{
if($j==1||$j==$i*2-1){
echo"*";
}else{
echo"&nbsp;";
}
}
}
echo"<br/>";
}
echo"<hr/>"
?>


接下来,是菱形

<?php
$n=5;
for($i=1;$i<=$n;$i++){
for($k=1;$k<=$n-$i;$k++){
echo"&nbsp;";
}
//内层控制每层*的个数
for($j=1;$j<=$i*2-1;$j++){
//第一层和最后一层*不变
if($i==1){
echo"*";
}
//其他层第一个和最后一个位置打印*,其他位置打印空格
else{
if($j==1||$j==$i*2-1){
echo"*";
}else{
echo"&nbsp;";
}
}
}
echo"<br/>";
} for($i=$n;$i>=1;$i--){
for($k=1;$k<=$n-$i;$k++){
echo"&nbsp;";
}
//内层控制每层*的个数
for($j=1;$j<=$i*2-1;$j++){
//第一层和最后一层*不变
if($i==1){
echo"*";
}
//其他层第一个和最后一个位置打印*,其他位置打印空格
else{
if($j==1||$j==$i*2-1){
echo"*";
}else{
echo"&nbsp;";
}
}
}
echo"<br/>";
}
?>

注:上述代码在不同的浏览器可能显示有差异

由于是初学php,如果上述代码有错误之处,还请各位看客指正,谢谢!

php小练习——实现几种不同的金字塔的更多相关文章

  1. WCF小实例以及三种宿主

    WCF小实例以及三种宿主 最近一直在学习WCF相关知识,下面将通过一个小实例对所学的知识进行简单的回顾:本实例是一个简单三层操作数据库,并且也简单实现的三种宿主(控制台宿主,IIS宿主以及Window ...

  2. 微信小程序的功能开发工具跟公众号的差别,小程序是一种减负思维对简单APP是巨大打击

    微信小程序的功能开发工具跟公众号的差别,小程序是一种减负思维对简单APP是巨大打击 摘要: 小程序和公众号最大的区别有如下四点:1.小程序没有粉丝,开发者在后台能看到的只能是累计用户访问数以及实时统计 ...

  3. windows下去掉快捷方式图标的小箭头的几种方法

    去掉快捷方式图标的小箭头的几种方法 第一种: 点开始菜单,点运行,输入以下命令后回车.即可解决 cmd /k reg delete "HKEY_CLASSES_ROOT\lnkfile&qu ...

  4. 在jsp中常用的内置对象(5个)小总结和两种页面跳转方式(服务器端调转、客户端跳转)的区别

    jsp中常用的几个内置对象: 一.request对象 主要作用:  (1)获取请求页面的信息   比如:request.getParameter("参数名");  (2)获取客户端 ...

  5. [小专题]另一种字符串匹配的思路——Shift-And算法

    吐槽:前两天打组队赛遇到一个字符串的题考了这个(见:http://acm.hdu.edu.cn/showproblem.php?pid=5972 ) 当时写了个KMP瞎搞然后TLE了(害),赛后去查了 ...

  6. 心急的C小加(两种解法)

    心急的C小加 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的 ...

  7. 客户推广微信小程序的几种方法如下

    一.店面二维码推广 1.店铺门口张贴 2.餐桌.柜台张贴 3.展架.海报宣传展示 二.结合促销活动,宣传单页上印小程序二维码线下派发 三.餐厅送餐时附带点餐小卡片,印小程序二维码 四.首次扫码立送积分 ...

  8. Hadoop合并小文件的几种方法

    1.Hadoop HAR 将众多小文件打包成一个大文件进行存储,并且打包后原来的文件仍然可以通过Map-Reduce进行操作,打包后的文件由索引和存储两大部分组成: 缺点: 一旦创建就不能修改,也不支 ...

  9. 小贝_mysql select5种子句介绍

    mysql select5种子句介绍 简要 一.五种字句 二.具体解释五种字句 一.五种字句 where.group by.having.order by.limit 二.具体解释五种字句 2.1.理 ...

随机推荐

  1. POJ_2533 Longest Ordered Subsequence【DP】【最长上升子序列】

    POJ_2533 Longest Ordered Subsequence[DP][最长递增子序列] Longest Ordered Subsequence Time Limit: 2000MS Mem ...

  2. URAL - 1900 Brainwashing Device

    While some people travel in space from planet to planet and discover new worlds, the others who live ...

  3. 三道半平面交测模板题 Poj1474 Poj 3335 Poj 3130

    求半平面交的算法是zzy大神的排序增量法. ///Poj 1474 #include <cmath> #include <algorithm> #include <cst ...

  4. java 怎么让打印信息换行?

    System.out.println("账号=="+name+"\n"); System.out.println("密码=="+pwd+&q ...

  5. launch 文件解析

    roslaunch工具是ros中python实现的程序启动工具,通过读取launch文件中的参数配置.属性配置等来启动一系列节点: 很多ROS包或源码包中都有launch文件,一般为该程序包能够运行起 ...

  6. svn如何给新文件加锁

    第一步: 右键subversion(版本控制) 第二部:找到 subversion properties 第二部: add进行添加

  7. Spark机器学习3·推荐引擎(spark-shell)

    Spark机器学习 准备环境 jblashttps://gcc.gnu.org/wiki/GFortranBinaries#MacOS org.jblas:jblas:1.2.4-SNAPSHOT g ...

  8. java用servlet、cookie实现一个阅读记录

    效果如图 代码1 package com.xiaostudy.servlet; import java.io.IOException; import java.io.PrintWriter; impo ...

  9. JAVA集合类汇总 - 转载

    一.集合与数组 数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用. 集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用. ...

  10. MSSQL复制表操作

    1:复制表结构及数据到新表 select * into 目的数据库名.dbo.目的表名 from 原表名 select * into my0735home.dbo.infoMianTest from ...