php - 如何镜像使用嵌套 for 循环制作的这个三角形
问题描述
如何镜像这个用嵌套 for 循环制作的三角形?
for($x=0; $x<10; $x++) { //down
echo '<br>';
for($y=0; $y<$x; $y++) {
echo '*';
}
}
我已经设法做到了,但我无法理解
for($x=1;$x<8;$x++){
for($y=8;$y>=$x;$y--){
echo" ";
}
for($z=1;$z<=$x;$z++){
echo"* ";
}
echo"<br>";
}
解决方案
我将重写你的第一个变量以使用一些变量,希望这些变量对我们将要介绍的更改更有意义。他们没有错,这只是帮助(至少我)考虑一下。此外,我使用的是换行符而不是 HTML <br />
,而不是空格,我使用的是加号,而不是星号,我使用的是井号,只是为了让正在发生的事情变得明显。
第一个例子
const LINES = 10;
for ($rows = 0; $rows <= LINES; $rows++) {
for ($stars = 0; $stars <= $rows; $stars++) {
echo '#';
}
echo PHP_EOL;
}
结果
#
##
###
####
#####
######
#######
########
#########
##########
###########
第二个示例 - 右侧的额外空格
这个例子和上面一样,但是我在星号的末尾添加了一些额外的空白。结果看起来与之前的相同,但是如果您选择文本,您将看到这些空格。
const LINES = 10;
for ($rows = 0; $rows <= LINES; $rows++) {
for ($stars = 0; $stars <= $rows; $stars++) {
echo '#';
}
for ($spaces = LINES; $spaces >= $rows; $spaces--) {
echo "+";
}
echo PHP_EOL;
}
结果
#+++++++++++
##++++++++++
###+++++++++
####++++++++
#####+++++++
######++++++
#######+++++
########++++
#########+++
##########++
###########+
第三个例子——镜像
为了反映这一点,我们只需要在星星之前移动空格(在我的例子中是加号),所以只需交换内部循环的顺序:
const LINES = 10;
for ($rows = 0; $rows <= LINES; $rows++) {
for ($spaces = LINES; $spaces >= $rows; $spaces--) {
echo "+";
}
for ($stars = 0; $stars <= $rows; $stars++) {
echo '#';
}
echo PHP_EOL;
}
结果
+++++++++++#
++++++++++##
+++++++++###
++++++++####
+++++++#####
++++++######
+++++#######
++++########
+++#########
++##########
+###########
第四个例子——双方
如果你想展示金字塔的两面,你可以不停地复制东西
const LINES = 10;
for ($rows = 0; $rows <= LINES; $rows++) {
for ($spaces = LINES; $spaces >= $rows; $spaces--) {
echo "+";
}
for ($stars = 0; $stars <= $rows; $stars++) {
echo '#';
}
for ($stars = 0; $stars <= $rows; $stars++) {
echo '#';
}
for ($spaces = LINES; $spaces >= $rows; $spaces--) {
echo "+";
}
echo PHP_EOL;
}
结果
+++++++++++##+++++++++++
++++++++++####++++++++++
+++++++++######+++++++++
++++++++########++++++++
+++++++##########+++++++
++++++############++++++
+++++##############+++++
++++################++++
+++##################+++
++####################++
+######################+
推荐阅读
- r - 覆盖ggplot中渐变色阶的自动分配值
- go - 如何使用beego生成离线swagger doc
- wpf - 如何将焦点设置到内部 TextBox 但闪烁的插入符号可见?
- extjs - CEF - 使用 Chromium Embedded Framework 时某些字体图标不可见
- python - 生成最后一个数组并附加到列表中的次数python
- php - 如何在另一个文件的jquery中调用嵌套函数?
- html - 防止物品从右侧溢出
- javascript - 如何在一个函数中定义两个导出处理程序并在另一个处理程序中使用来自一个处理程序的变量?
- sql - 如何在多对多关系中创建一组相关条目?
- javascript - Html 列表未从 SQL 数据库更新