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.理 ...
随机推荐
- ul,li设置inline-block缝隙
去掉换行符和空白符 margin-left: -0.5em(缝隙大小不确定) ul字号设为0,li设置字号 (有些浏览器设置最小字体) js移除空白子节点
- Ubuntu安装及一些初始操作
目录 使用Universal-USB-Installer安装Ubuntu Ubuntu连接无线网络 Windows与Ubuntu双系统时间不一致解决办法 Ubuntu安装Sublime Text 3 ...
- 扯一扯 C#委托和事件?策略模式?接口回调?
早前学习委托的时候,写过一点东西,今天带着新的思考和认知,再记点东西.这篇文章扯到设计模式中的策略模式,观察者模式,还有.NET的特性之一--委托.真的,请相信我,我只是在扯淡...... 场景练习 ...
- 一个简单的仿 Launcher 应用
本例实现两个功能: 系统桌面上的app图标能够排列在我们的页面上. 点击自定义桌面上的app图标,能够打开对应的app. 实现思路: 我们知道,一个应用的启动页 Activity 的 Intent 的 ...
- c#的yield return
4.1 迭代器块 一个迭代器块(iterator block)是一个能够产生有序的值序列的块.迭代器块和普通语句块的区别就是其中出现的一个或多个yield语句. yield return语句产生迭代的 ...
- samba 4.7.16 安装配置详解
系统:Centos 7.4 x64位 服务版本:samba-4.7.1.samba-client-4.7 Samba 简介 Samba 是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服 ...
- JAVA基础补漏--多态
Fu obj = new ZI(); 访问成员变量规则 编译看左,运行看左. obj.num; 1.直接通过对象名访问成员变量:看等号左右是谁,优先用谁,没有则往上找. obj.getnum(); 2 ...
- UVA 10900 So you want to be a 2n-aire? (概率dp)
题意:玩家初始的金额为1:给出n,表示有n道题目:t表示说答对一道题目的概率在t到1之间均匀分布. 每次面对一道题,可以选择结束游戏,获得当前奖金:或者回答下一道问题,答对的话奖金翻倍,答错的话结束游 ...
- DPDK l3fwd
l3fwd负责三层转发,比l2fwd要复杂点. /*- * BSD LICENSE * * Copyright(c) 2010-2014 Intel Corporation. All rights r ...
- Rotate List ,反转链表的右k个元素
问题描述: Given a list, rotate the list to the right by k places, where k is non-negative. For example:G ...