php菱形,PHP 打印菱形
1,菱形
*
***
*****
*******
*********
*******
*****
***
*
示例
$n = 5;
for($i = 1;$i <= $n;$i++) {
for($k = 1;$k <= $n - $i;$k++) {
echo " ";
}
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 " ";
}
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 " ";
}
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 " ";
}
}
echo "
";
}
for($i = $n - 1;$i >= 1;$i--) {
for($k = 1;$k <= $n - $i;$k++) {
echo " ";
}
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 " ";
}
}
echo "
";
}
?>
示例二
// 打印空心菱形
$n = 8;
for($i = 1;$i <= 2 * $n-1;$i++) { // 外层for控制金字塔的层数
// 在打印*前先打印空格
if ($i <= $n) {
for($k = 1;$k <= $n + 1 - $i;$k++) {
echo " ";
}
// 能内层for控制每层*的个数
for($j = 1;$j <= 2 * $i-1;$j++) {
if ($i == 1) {
echo '*';
} else {
if ($j == 1 || $j == 2 * $i-1) {
echo '*';
} else {
echo ' ';
}
}
}
} else { // 问题出现在这个else里
for($k = 1;$k <= $i - $n + 1;$k++) { // 这里$k <= $i-$n 应该为$k<=$i-$n+1
echo ' ';
}
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 ' ';
}
}
}
}
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 打印菱形相关推荐
- java打印菱形(Java打印菱形图案)
如何用java语句打印菱形 既然要求死了是*,就好办了,看我的程序 public class test public static void main(String []args) String a= ...
- python编程菱形_Python打印“菱形”星号代码方法
本人是一名python初学者,刚刚看到一道有趣的python问题,"用python如何在编译器中打印出菱形图案?" 因此决定尝试一下,代码不多,仅供参考. 代码 def print ...
- python语言打印菱形_Python打印菱形
使用python打印出菱形: * *** ***** ******* ***** *** * 思想:平常我写这种代码的时候,总是自然地使用二层循环,今天老师教了一个特别好的方法,化二维为一维.我觉得代 ...
- python打印星号菱形_Python打印“菱形”星号代码方法
本人是一名python初学者,刚刚看到一道有趣的python问题,"用python如何在编译器中打印出菱形图案?" 因此决定尝试一下,代码不多,仅供参考. 代码def printS ...
- python中星号怎么打出来_Python打印“菱形”星号代码方法
本人是一名python初学者,刚刚看到一道有趣的python问题,"用python如何在编译器中打印出菱形图案?" 因此决定尝试一下,代码不多,仅供参考. 代码 def print ...
- java输出五行菱形_Java打印一个菱形
打印出如下图案 (行数为奇数n的菱形) * *** ***** ******* ***** *** * 代码: public static void main(String[] args) { int ...
- C语言学习之打印菱形
打印菱形 #include <stdio.h> void main(){for(int i=0;i<4;i++){for(int j=0;j<3-i;j++){printf(& ...
- C语言学习之用*打印菱形
C语言学习之用*打印菱形 #include <stdio.h> int main(){int i,j,k;//定义变量for(i=0;i<=3;i++){ //控制菱形的前三行for ...
- python中输出菱形_用python打印菱形的实操方法和代码
python怎么打印菱形?下面给大家带来三种方法: 第一种 rows = int(input('请输入菱形边长:\n')) row = 1 while row <= rows: col = 1 ...
- java实现打印菱形
package cn.jbit.nestedloops; import java.util.Scanner; /*** 输入行数打印菱形*/ public class Diamond {public ...
最新文章
- 笔记本电脑显卡cuda_准大学生必看~千万别乱买,建议不同专业选择不同款式的笔记本电脑!...
- 第163天:js面向对象-对象创建方式总结
- NA-NP-IE系列实验之前三个实验小结
- 解读Raft(二 选举和日志复制)
- apache solr velocity 注入远程命令执行漏洞 (cve-2019-17558)
- 自定义Mybatis框架
- 动态规划再理解(53、121、174)
- 程序员!别逼自己买课了,每天花10分钟做这件事,写代码能力暴增......
- leetcode_Basic Calculator II
- Bootstrap 滚动监听插件Scrollspy 的事件
- java日志系统_Java日志系统
- 谈论 NOD32: 教育网超级 病毒更新服务器: http://222.197.166.33/main.htm
- window.location对象、window.navigator对象、window.history对象
- MySQL优化详解(五)——MySQL分库分表
- hibernate笔记--组合主键映射方法
- 正确理解三极管的放大区、饱和区、截止区
- 全新多商户版PHP自助发卡平台源码 多模板 自适应手机端
- android 车载安富蓝牙电话开发,Android平台BLE低功耗蓝牙开发
- 如何用tensorflow使用自定义数据来训练,做物体检测
- 传奇世界私服务器端制作,关于内网架设传奇世界私服问题的一些解答
热门文章
- Word - 简繁转换功能
- CogPDF417Tool工具
- [Axure RP9] Axure RP Prototyping: Noob to Master 学习笔记
- 渗透测试-灰鸽子远控木马
- 数据库原理与应用第三版何玉洁第二章课后题答案
- 百度2014校园招聘-研发工程师笔试题(济南站)
- 关于BigDecimal.ROUND_HALF_EVEN银行家算法
- android高仿苹果计算器,安卓仿苹果计算器(内附完整源码)要点解析.docx
- python中双重循环_python中双循环
- error C1083 错误