PHP 打印菱形
web PHP 2019-04-26 2476 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

7440859 2655 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)

1,菱形

    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *

示例

<?php
$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 "<br/>";
} 
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 "<br/>";
} 
?>
2,空心菱形


    *
   * *
  *   *
 *     *
*       *
 *     *
  *   *
   * *
    *
示例一



<?php
$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 "<br/>";
} 
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 "<br/>";
} 
?>


示例二

<?php 
// 打印空心菱形
$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 '<br/>';
} 
?>
示例三
<?php 
function print_diamond($line, $flag = '*', $space = '&nbsp;', $end = '<br />') {
    $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);
?>
示例四
<?php 
// 打印空心菱形
$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 "&nbsp;";
            } 
        } else { // 下面$n层
            if ($j == $i - $n || $j == 3 * $n - $i + 2) { // 下面层,前面那个*坐标为 $i-$n 后面为 3*$n-$i+2
                echo "*";
            } else {
                echo "&nbsp;";
            } 
        } 
    } 
    echo '<br/>';
}      
?>
示例五
<?php 
// 打印空心菱形
$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 "&nbsp;";
        } 
    } 
    echo '<br/>';
}  
?>
示例六
<?php 
function diamond($n=3){
	if($n==1){ echo '*'; return; }
	for($i=0,$rows=($n*2)-1; $i<$rows; $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 '<xmp>';
diamond(5);
echo '</xmp>';
?>


版权声明:本篇文章来源于网络。 来源链接

相关推荐
php实现ZIP压缩文件解压缩,中文乱码解决方法(重要)
PHP | 2019-04-30 6233
直接上代码,具体代码里面都有注释。直接中文压缩文件解压到中文文件夹。 <?php // 需开启配置 php_zip.dll // phpinfo(); header("Content-type:text/html;charset=utf-8"); /* * $filename 被解压文件名 * $path 解压...
openssl_private_decrypt解密失败
PHP | 2019-01-16 6012
复制别人的解密程序,原程序可以解密,复制过来就不可以 一步步尝试发现,秘钥换行符有区别, 原秘钥有换行符,复制过来不知道什么时候把换行符清空了,成了一行字符串了。
评论:0条
评论加载中...
发表评论
前一篇: