>  기사  >  백엔드 개발  >  PHP를 사용하여 대칭 마름모를 출력하는 간단한 방법

PHP를 사용하여 대칭 마름모를 출력하는 간단한 방법

WBOY
WBOY원래의
2016-07-30 13:29:302381검색

예를 들어 간단한 다이아몬드 모양이나 별 타워를 출력하려면 먼저 가장 바깥쪽 레이어에서 줄 번호를 제어하고 내부 루프에 두 개의 첫 번째 루프 컨트롤이 있고 두 번째 루프에서 별 개수를 제어합니다. , 공간을 제어하는 ​​것은 총 줄 수에서 현재 줄 수를 뺀 for($space=1; $space<=$lines-$line; ++$space) 이고 별에 대한 루프는 for($ star입니다. =1; $star<=2*$line-1; ++$star)

다음 코드는 가장 간단한 출력 다이아몬드의 일부입니다

//$line 表示行号
//$space = $lines-$line;//每行的前导空格
//$star = 2*$line - 1;//m每行的星星数量

//外层循环控制行号
for($line=1; $line<=$lines; ++$line) {
	//先输出前导空格,控制空格的数量
	for($space=1; $space<=$lines-$line; ++$space) {
		echo &#39;+&#39;;
	}
	//再输出星星,控制星星的数量
	for($star=1; $star<=2*$line-1; ++$star) {
		echo &#39;*&#39;;
	}
	//输出换行
	echo "<br />";
}<br></p> <p>대칭을 포함하는 대부분의 그래픽은 숫자 축을 포함합니다. 예를 들어 출력 및 읽기에 표시된 산발적 +는 공백으로 대체됩니다</p>
<p>먼저 일반적인 방법은 +를 먼저 만드는 것입니다. + 루프를 사용하여 상위 절반 레이어를 출력한 다음 -- 루프를 만들어 하위 절반 레이어 </p>
<p>를 출력합니다. 예를 들어 </p>
<pre name="code">$lines=12;
for ($line=1; $line <=$lines ; $line++) { 
	for ($j=1; $j <= $lines - $line ; $j++) { 
		echo "+";
	}
	for ($i=0; $i < 2*$line-1; $i++) { 
		if ($i == 0 || $i == 2*$line-2) {
			echo "*";
		}else{
			echo "+";
		};
	}
	echo "</br>";
}
$lines=12;
for ($line=$lines-1; $line >=1 ; $line--) { 
	for ($j=1; $j <= $lines - $line ; $j++) { 
		echo "+";
	}
	for ($i=0; $i < 2*$line-1; $i++) { 
		if ($i == 0 || $i == 2*$line-2 || $line == $lines) {
			echo "*";
		}else{
			echo "+";
		};
	}
	echo "</br>";
}
그런 다음 숫자 축을 사용하는 더 영리한 방법이 있습니다

//123454321
//-4-3-2-1 01 234(숫자줄)
//432101234(절대값)

1 2에 도달한다고 생각하세요 3 4 5 4 3 2 1의 효과

먼저 -4-3-2-10 1234 절댓값 함수를 사용하여

그러면 43 2101234

예를 들어 해당 첫 번째 추가가 동일한 책과 같다면 이 책은 5

해당 의사 코드

for($i=-4; $i<=4; ++$i) {
	echo $i, &#39;+&#39;;
	echo abs($i), &#39;+&#39;;
	echo 5-abs($i);

	echo &#39;<br>';
}

따라가기 이 아이디어에 따르면 우선 가장 바깥쪽 루프가 숫자 축을 제어합니다. 즉, ($i에 대해 음수에서 양수로 이동합니다. =-($lines-1); $i<=$lines-1; ++ $i)

그런 다음 총 라인 수에서 위 축의 절대값을 뺍니다. $line = $lines - abs($i);

그러면 다음 코드는 변경되지 않습니다.

for($i=-($lines-1); $i<=$lines-1; ++$i) {
	//计算$line
	$line = $lines - abs($i);
	//先输出前导空格,控制空格的数量
	for($space=1; $space<=$lines-$line; ++$space) {
		echo '+';
	}
	//再输出星星,控制星星的数量
	for($star=1; $star<=2*$line-1; ++$star) {
		//判断应该输出星星还是空格
		if($star==1 || $star==2*$line-1) {
			echo '*';
		} else {
			echo '+';
		}
	}
	//输出换行
	echo "
"; }

저작권 표시: 이 글은 작성자의 원본 글입니다. 블로거의 허가 없이 복제할 수 없습니다.

위 내용은 모든 측면을 포함하여 PHP를 사용하여 대칭 마름모를 출력하는 간단한 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.