- 아는 동생이 컴퓨터공학과 대학교 과제라고 하면서 보내온 큰 바람개비, 작은 바람개비 동시에 출력하기.
- 이게 정답 로직은 아니지만 이왕 만든김에 포스팅 합니다.
- 필자의 경우 PHP 언어가 편해서 PHP로 작성하였음.
- 필요한경우 변수선언,출력형태만 바꿔 사용하세요
1.왼쪽에 큰 이등변 삼각형, 오른쪽에 작은 이등변 삼각형을 출력하시오
- 문제) #7 , #8 알고리즘을 구하시오.
- 왼쪽에 큰 이등변 삼각형 9*5
- 한칸 띄고 (열 한칸 띄우고)
- 오른쪽에 작은 이등변 삼각형 5*3 을 출력하시오
2. 풀이
- 1) 행 열의 갯수를 먼저 살펴봐야 한다.
- 9*5, 한칸 열 띄우고, 5*3 의 경우
- 총 행은 9행
- 총 열은 9열 ( 큰 이등변삼각형 5열, 띄어쓰기1열, 작은 이등변삼각형 3열)
- 2) 규칙을 찾아라
- 반복문을 몇개를 써야하는지 코딩하기 전에 알고리즘을 생각해봐야 된다.
- 필자의 경우 심심풀이로 해서 코드 간소화 까지 생각하지는 않았다.
- 코드를 아래 적어 놓겠으니 참고하시고 이해안가면 댓글로 물어봐주세요 ㅎ
- 이해가 안가시는 분은 자신만의 방정식을 찾아보세요!
- 3) 필자는 웹개발자이기 때문에 출력을 가독성있게 하기위해 테이블 사용함.
- 과제하는사람들은 알아서 고쳐 쓰세요 ^^;;
function get_Isosceles_triangle_table(){
$return = "<table border='1' id='tableleft'>";
for ($i = 1; $i <= 9 ; $i++){
$return .= "<tr>";
for ($j = 1 ; $j <= 9 ; $j ++){
if($j <= 5){ // 왼쪽 삼각형 9*5
if($i <= 5){
if($i >= $j){
$return .= "<td bgcolor='#ff8c00'>*</td>";
}else{
$return .= "<td> </td>";
}
}else{
$x = $i-5;
if($j <= 5-$x){
$return .= "<td bgcolor='#ff8c00'>*</td>";
}else{
$return .= "<td> </td>";
}
}
}else if($j == 6){ //띄어쓰기
$return .= "<td> </td>";
}else{ // 오른쪽 삼각형 5*3
if($i <= 3){ // 오른쪽 작은삼각형 중간포함 윗부분
$x = 6+$i;
if($x >= $j){
$return .= "<td bgcolor='#ff8c00'>*</td>";
}else{
$return .= "<td> </td>";
}
}else{ // 오른쪽 작은삼각형 중간제외 밑부분
if($i <= 5){
$x = $i-3;
if($j <= 9-$x){ // 총 열 - 작은다이아 중앙 이후 4열 - 작은다이아 중앙 위 3 = 1만큼 빼준 값이 빈값.
$return .= "<td bgcolor='#ff8c00'>*</td>";
}else{
$return .= "<td> </td>";
}
}else{
$return .= "<td> </td>";
}
}
}
}
$return .= "</tr>";
}
$return .= "</table>";
return $return;
}
function get_Isosceles_triangle2_table(){
$return = "<table border='1' >";
for ($i = 1; $i <= 9 ; $i++){
$return .= "<tr>";
for ($j = 1 ; $j <= 9 ; $j ++){
if($j <= 5){ // 왼쪽 삼각형 9*5
if($i <= 5){
$x = 6-$i; // 6-$i 만큼의 값이 왼쪽 공백값.
if($j >= $x){
$return .= "<td bgcolor='#bdb76b'>*</td>";
}else{
$return .= "<td> </td>";
}
}else{
$x = $i-5;
if($j > $x){ // 열 이 x값보다 클때 *표시.
$return .= "<td bgcolor='#bdb76b'>*</td>";
}else{
$return .= "<td> </td>";
}
}
}else if($j == 6){ //띄어쓰기
$return .= "<td> </td>";
}else{ // 오른쪽 삼각형 5*3
if($i <= 3){ // 오른쪽 작은삼각형 중간포함 윗부분
$x = 10-$i;
if($j >= $x){
$return .= "<td bgcolor='#bdb76b'>*</td>";
}else{
$return .= "<td> </td>";
}
}else{ // 오른쪽 작은삼각형 중간제외 밑부분
if($i <= 5){
$x = $i-3;
if($j >= 7+$x){ // 작은다이아는 7열부터 시작, 7 + 행의 3의 값이 왼쪽 공백값.
$return .= "<td bgcolor='#bdb76b'>*</td>";
}else{
$return .= "<td> </td>";
}
}else{
$return .= "<td> </td>";
}
}
}
}
$return .= "</tr>";
}
$return .= "</table>";
return $return;
}
$triangle = get_Isosceles_triangle_table();
$triangle2 = get_Isosceles_triangle2_table();
$arr = array($triangle,$triangle2);
foreach ($arr as $key){
echo $key;
}
'Language > PHP' 카테고리의 다른 글
[로직]다이아몬드 출력 로직 , 큰 다이아 작은 다이아 출력 하기 (2) | 2020.04.23 |
---|---|
[로직]모래시계 출력 로직 , 큰 모래시계 작은 모래시계 출력 하기 (1) | 2020.04.23 |
PHP htmlspecialchars() 사용 시 특정 한글 깨짐 현상 해결 (0) | 2020.04.17 |
PHP Warning: gzinflate(): stream error in 오류 해결하기 (0) | 2020.04.08 |
PHP Warning: preg_match(): No ending delimiter '/' found in 오류 해결하기 (0) | 2020.04.08 |