1,菱形

*

***

*****

*******

*********

*******

*****

***

*

示例

$n = 5;

for($i = 1;$i <= $n;$i++) {

for($k = 1;$k <= $n - $i;$k++) {

echo "&nbsp";

}

for($j = 1;$j <= ($i-1) * 2 + 1;$j++) {

echo "*";

}

echo "
";

}

for($i = $n - 1;$i >= 1;$i--) {

for($k = 1;$k <= $n - $i;$k++) {

echo "&nbsp";

}

for($j = 1;$j <= ($i-1) * 2 + 1;$j++) {

echo "*";

}

echo "
";

}

?>

2,空心菱形

*

* *

* *

* *

* *

* *

* *

* *

*

示例一

$n = 5;

for($i = 1;$i <= $n;$i++) {

for($k = 1;$k <= $n - $i;$k++) {

echo "&nbsp";

}

for($j = 1;$j <= ($i-1) * 2 + 1;$j++) {

if($i == 1){

echo "*";

}elseif($j == 1 or $j == ($i-1) * 2 + 1){

echo "*";

}else{

echo "&nbsp";

}

}

echo "
";

}

for($i = $n - 1;$i >= 1;$i--) {

for($k = 1;$k <= $n - $i;$k++) {

echo "&nbsp";

}

for($j = 1;$j <= ($i-1) * 2 + 1;$j++) {

if($i == 1){

echo "*";

}elseif($j == 1 or $j == ($i-1) * 2 + 1){

echo "*";

}else{

echo "&nbsp";

}

}

echo "
";

}

?>

示例二

// 打印空心菱形

$n = 8;

for($i = 1;$i <= 2 * $n-1;$i++) { // 外层for控制金字塔的层数

// 在打印*前先打印空格

if ($i <= $n) {

for($k = 1;$k <= $n + 1 - $i;$k++) {

echo "&nbsp";

}

// 能内层for控制每层*的个数

for($j = 1;$j <= 2 * $i-1;$j++) {

if ($i == 1) {

echo '*';

} else {

if ($j == 1 || $j == 2 * $i-1) {

echo '*';

} else {

echo '&nbsp';

}

}

}

} else { // 问题出现在这个else里

for($k = 1;$k <= $i - $n + 1;$k++) { // 这里$k <= $i-$n 应该为$k<=$i-$n+1

echo '&nbsp';

}

for($j = 1;$j <= 2 * (2 * $n - $i)-1;$j++) {

if ($i == 2 * $n-1) { // 你的这里少了一个等于号,所以$i变成了常数 $i = 17

echo '*';

} else {

if ($j == 1 || $j == 2 * (2 * $n - $i)-1) {

echo '*';

} else {

echo '&nbsp';

}

}

}

}

echo '
';

}

?>

示例三

function print_diamond($line, $flag = '*', $space = ' ', $end = '
') {

$diamond = make_diamond_array($line);

$total = $line * 2 - 1;

for($i = 1; $i <= $total; $i++) {

for($j = 1; $j <= $total; $j++) {

if(!empty($diamond[$i][$j])) {

echo $flag;

}else{

echo $space;

}

}

echo $end;

}

}

function make_diamond_array($line) {

$line = intval($line);

$diamond = array();

for($i = 1; $i <= $line; $i++) {

$diamond[$i] = $diamond[$line * 2 - $i] = array(($line - $i + 1) => true, ($line + $i - 1) => true);

}

return $diamond;

}

print_diamond(6);

?>

示例四

// 打印空心菱形

$n = 6; // 共有 2*$n + 1 层

for($i = 1;$i <= 2 * $n + 1;$i++) { // 循环所有层

for($j = 1;$j <= 2 * $n + 1;$j++) { // 循环所有列,把菱形想成正方形

if ($i <= $n + 1) { // 上面$n+1层

if ($j == $n - $i + 2 || $j == $n + $i) { // 上面n+1层 前面那个*坐标为 $n-$i+2 后面那个为$n+$i

echo "*";

} else {

echo " ";

}

} else { // 下面$n层

if ($j == $i - $n || $j == 3 * $n - $i + 2) { // 下面层,前面那个*坐标为 $i-$n 后面为 3*$n-$i+2

echo "*";

} else {

echo " ";

}

}

}

echo '
';

}

?>

示例五

// 打印空心菱形

$n = 6; // 共有 2*$n + 1 层

for($i = 1;$i <= 2 * $n + 1;$i++) { // 循环所有层

for($j = 1;$j <= 2 * $n + 1;$j++) { // 循环所有列,把菱形想成正方形

if ($j == $n - $i + 2 || $j == $n + $i || $j == $i - $n || $j == 3 * $n - $i + 2) {

echo "*";

} else {

echo " ";

}

}

echo '
';

}

?>

示例六

function diamond($n=3){

if($n==1){ echo '*'; return; }

for($i=0,$rows=($n*2)-1; $i

if($i<=$rows/2){

$tmp = ($i*2)+1;

echo str_pad('',($rows-$tmp)/2,' ',STR_PAD_LEFT).str_pad(str_pad('',$tmp-2,' ',STR_PAD_BOTH),$tmp,'*',STR_PAD_BOTH)."\r\n";

}else{

$tmp = ($rows/2-($i-$rows/2+1))*2+1;

echo str_pad('',((($i*2)+1)-$rows)/2,' ',STR_PAD_LEFT).str_pad(str_pad('',$tmp-2,' ',STR_PAD_BOTH),$tmp,'*',STR_PAD_BOTH)."\r\n";

}

}

}

echo '

';

diamond(5);

echo '

';

?>

php菱形,PHP 打印菱形相关推荐

  1. java打印菱形(Java打印菱形图案)

    如何用java语句打印菱形 既然要求死了是*,就好办了,看我的程序 public class test public static void main(String []args) String a= ...

  2. python编程菱形_Python打印“菱形”星号代码方法

    本人是一名python初学者,刚刚看到一道有趣的python问题,"用python如何在编译器中打印出菱形图案?" 因此决定尝试一下,代码不多,仅供参考. 代码 def print ...

  3. python语言打印菱形_Python打印菱形

    使用python打印出菱形: * *** ***** ******* ***** *** * 思想:平常我写这种代码的时候,总是自然地使用二层循环,今天老师教了一个特别好的方法,化二维为一维.我觉得代 ...

  4. python打印星号菱形_Python打印“菱形”星号代码方法

    本人是一名python初学者,刚刚看到一道有趣的python问题,"用python如何在编译器中打印出菱形图案?" 因此决定尝试一下,代码不多,仅供参考. 代码def printS ...

  5. python中星号怎么打出来_Python打印“菱形”星号代码方法

    本人是一名python初学者,刚刚看到一道有趣的python问题,"用python如何在编译器中打印出菱形图案?" 因此决定尝试一下,代码不多,仅供参考. 代码 def print ...

  6. java输出五行菱形_Java打印一个菱形

    打印出如下图案 (行数为奇数n的菱形) * *** ***** ******* ***** *** * 代码: public static void main(String[] args) { int ...

  7. C语言学习之打印菱形

    打印菱形 #include <stdio.h> void main(){for(int i=0;i<4;i++){for(int j=0;j<3-i;j++){printf(& ...

  8. C语言学习之用*打印菱形

    C语言学习之用*打印菱形 #include <stdio.h> int main(){int i,j,k;//定义变量for(i=0;i<=3;i++){ //控制菱形的前三行for ...

  9. python中输出菱形_用python打印菱形的实操方法和代码

    python怎么打印菱形?下面给大家带来三种方法: 第一种 rows = int(input('请输入菱形边长:\n')) row = 1 while row <= rows: col = 1 ...

  10. java实现打印菱形

    package cn.jbit.nestedloops; import java.util.Scanner; /*** 输入行数打印菱形*/ public class Diamond {public ...

最新文章

  1. 笔记本电脑显卡cuda_准大学生必看~千万别乱买,建议不同专业选择不同款式的笔记本电脑!...
  2. 第163天:js面向对象-对象创建方式总结
  3. NA-NP-IE系列实验之前三个实验小结
  4. 解读Raft(二 选举和日志复制)
  5. apache solr velocity 注入远程命令执行漏洞 (cve-2019-17558)
  6. 自定义Mybatis框架
  7. 动态规划再理解(53、121、174)
  8. 程序员!别逼自己买课了,每天花10分钟做这件事,写代码能力暴增......
  9. leetcode_Basic Calculator II
  10. Bootstrap 滚动监听插件Scrollspy 的事件
  11. java日志系统_Java日志系统
  12. 谈论 NOD32: 教育网超级 病毒更新服务器: http://222.197.166.33/main.htm
  13. window.location对象、window.navigator对象、window.history对象
  14. MySQL优化详解(五)——MySQL分库分表
  15. hibernate笔记--组合主键映射方法
  16. 正确理解三极管的放大区、饱和区、截止区
  17. 全新多商户版PHP自助发卡平台源码 多模板 自适应手机端
  18. android 车载安富蓝牙电话开发,Android平台BLE低功耗蓝牙开发
  19. 如何用tensorflow使用自定义数据来训练,做物体检测
  20. 传奇世界私服务器端制作,关于内网架设传奇世界私服问题的一些解答

热门文章

  1. Word - 简繁转换功能
  2. CogPDF417Tool工具
  3. [Axure RP9] Axure RP Prototyping: Noob to Master 学习笔记
  4. 渗透测试-灰鸽子远控木马
  5. 数据库原理与应用第三版何玉洁第二章课后题答案
  6. 百度2014校园招聘-研发工程师笔试题(济南站)
  7. 关于BigDecimal.ROUND_HALF_EVEN银行家算法
  8. android高仿苹果计算器,安卓仿苹果计算器(内附完整源码)要点解析.docx
  9. python中双重循环_python中双循环
  10. error C1083 错误