php小练习——实现几种不同的金字塔
首先,从简单的着手,打印出金字塔的右半部分,代码如下
<?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" ";
}
//内层控制每层*的个数
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" ";
}
//内层控制每层*的个数
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" ";
}
}
}
echo"<br/>";
}
echo"<hr/>"
?>

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

注:上述代码在不同的浏览器可能显示有差异
由于是初学php,如果上述代码有错误之处,还请各位看客指正,谢谢!
php小练习——实现几种不同的金字塔的更多相关文章
- WCF小实例以及三种宿主
WCF小实例以及三种宿主 最近一直在学习WCF相关知识,下面将通过一个小实例对所学的知识进行简单的回顾:本实例是一个简单三层操作数据库,并且也简单实现的三种宿主(控制台宿主,IIS宿主以及Window ...
- 微信小程序的功能开发工具跟公众号的差别,小程序是一种减负思维对简单APP是巨大打击
微信小程序的功能开发工具跟公众号的差别,小程序是一种减负思维对简单APP是巨大打击 摘要: 小程序和公众号最大的区别有如下四点:1.小程序没有粉丝,开发者在后台能看到的只能是累计用户访问数以及实时统计 ...
- windows下去掉快捷方式图标的小箭头的几种方法
去掉快捷方式图标的小箭头的几种方法 第一种: 点开始菜单,点运行,输入以下命令后回车.即可解决 cmd /k reg delete "HKEY_CLASSES_ROOT\lnkfile&qu ...
- 在jsp中常用的内置对象(5个)小总结和两种页面跳转方式(服务器端调转、客户端跳转)的区别
jsp中常用的几个内置对象: 一.request对象 主要作用: (1)获取请求页面的信息 比如:request.getParameter("参数名"); (2)获取客户端 ...
- [小专题]另一种字符串匹配的思路——Shift-And算法
吐槽:前两天打组队赛遇到一个字符串的题考了这个(见:http://acm.hdu.edu.cn/showproblem.php?pid=5972 ) 当时写了个KMP瞎搞然后TLE了(害),赛后去查了 ...
- 心急的C小加(两种解法)
心急的C小加 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的 ...
- 客户推广微信小程序的几种方法如下
一.店面二维码推广 1.店铺门口张贴 2.餐桌.柜台张贴 3.展架.海报宣传展示 二.结合促销活动,宣传单页上印小程序二维码线下派发 三.餐厅送餐时附带点餐小卡片,印小程序二维码 四.首次扫码立送积分 ...
- Hadoop合并小文件的几种方法
1.Hadoop HAR 将众多小文件打包成一个大文件进行存储,并且打包后原来的文件仍然可以通过Map-Reduce进行操作,打包后的文件由索引和存储两大部分组成: 缺点: 一旦创建就不能修改,也不支 ...
- 小贝_mysql select5种子句介绍
mysql select5种子句介绍 简要 一.五种字句 二.具体解释五种字句 一.五种字句 where.group by.having.order by.limit 二.具体解释五种字句 2.1.理 ...
随机推荐
- day14生成器
生成器 我自己想写个可迭代的,——生成器生成器的本质就是迭代器因此生成器的所有好处都和迭代器一样但是生成器是我们自己写的python代码生成器的实现有两种方式:1.生成器函数2.生成器表达式 def ...
- ArcEngine开发中“错误类型"****"未定义构造函数”
from:http://blog.csdn.net/mengdong_zy/article/details/8990593 问题 在ArcEngine开发的时候,在编译时,发现出现这样的错误,出错的地 ...
- Rock-Paper-Scissors-Lizard-Spock Python实现
初学python,实现一些很有意思的小游戏是很能提高编程能力的. Rock-Paper-Scissors-Lizard-Spock http://en.wikipedia.org/wiki/Rock- ...
- hadoop27---netty中handler的执行顺序
Netty是基于Java NIO的网络应用框架. Netty是一个NIO client-server(客户端服务器)框架,使用Netty可以快速开发网络应用,例如服务器和客户端协议.Netty提供了一 ...
- linux:查看磁盘硬件信息hdparm,smartctl
smartctl 命令 这个一个用于控制和监控支持smart技术的硬盘的命令.通常配合 -a 选项我们可以查看到比较详尽的硬盘信息(比如序列号.硬盘容量.已运行时间.硬盘健康状况等).用法如下: sm ...
- Python数据处理实例
使用python进行数据处理的实例(数据为某公司HR部门关于员工信息的部分摘录,kaggle上面的一次赛题) https://www.kaggle.com/c/kfru-dbm-hr-analytic ...
- SQL-ALTER-change和modify区别
ALTER 对于列的应用: 1.更改列名 格式:CHANGE old_col_name new_col_name column_definition 保留old和new列名 ...
- CommStringLib
#include "syswatcher/CommStringLib.h" //#include "String16.h" #undef LOG_TAG #de ...
- Java解析XML的四种方法详解 - 转载
XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML.本文将详细介绍用Java解析XML的四种方法 在做一般的XML数据交换过程中,我更乐意传递XML字符串,而不是格式化 ...
- phpstrom ctrl+s无法上传的问题 解决
首先这个不教你怎么配置同步FTP,这个教程网上太多了. 主要是配置好了上传,上传的好好的,突然某一天不能上传了,或者配置好了上传不了. 我遇到的问题是,如果你没有点击Use this server a ...