이 페이지는 코딩도장 데이터의 읽기 전용 정적 보관본입니다.

원 그리기

비트맵 방식으로 적당하게 그린 원(동그라미)을 출력해보세요. 사이즈를 입력받아 이것이 도화지의 가로와 세로의 길이가 되도록 하고, 도화지는 "□" 기호로 채우고, 원은 "■"으로 그려봅니다.

힌트: 원의 방정식은 x^2 + y^2 = (반지름)^2 입니다.

#예시
사이즈를 입력하세요?30
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□■■■■■■■■■■□□□□□□□□□□
□□□□□□□□■■□□□□□□□□□□■■□□□□□□□□
□□□□□□□■□□□□□□□□□□□□□□■□□□□□□□
□□□□□■■□□□□□□□□□□□□□□□□■■□□□□□
□□□□■■□□□□□□□□□□□□□□□□□□■■□□□□
□□□□■□□□□□□□□□□□□□□□□□□□□■□□□□
□□□■□□□□□□□□□□□□□□□□□□□□□□■□□□
□□■□□□□□□□□□□□□□□□□□□□□□□□□■□□
□□■□□□□□□□□□□□□□□□□□□□□□□□□■□□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□□■□□□□□□□□□□□□□□□□□□□□□□□□■□□
□□■□□□□□□□□□□□□□□□□□□□□□□□□■□□
□□□■□□□□□□□□□□□□□□□□□□□□□□■□□□
□□□□■□□□□□□□□□□□□□□□□□□□□■□□□□
□□□□■■□□□□□□□□□□□□□□□□□□■■□□□□
□□□□□■■□□□□□□□□□□□□□□□□■■□□□□□
□□□□□□□■□□□□□□□□□□□□□□■□□□□□□□
□□□□□□□□■■□□□□□□□□□□■■□□□□□□□□
□□□□□□□□□□■■■■■■■■■■□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
수학 반복문 비트맵

2021/05/22 21:07

Katherine

10개의 풀이가 있습니다.

#drawing a circle
import math

N = int(input("Size:"))
half = (N-1)/2

for i in range(N):
          x = i - half
          for j in range(N):
                    y = j - half
                    k = math.sqrt(x**2 + y**2)
                    if half-1 < k <= half:
                              print("■", end='')
                    else:
                              print("□", end='')
          print()

2021/05/22 21:13

Katherine

자바입니다.

package may24;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        System.out.println("숫자 대입했을 때 원 만들기");
        Scanner sc = new Scanner(System.in);
        System.out.println("숫자를 입력해주세요. _ ");
        int code = sc.nextInt();
        for (int i = -code/2; i <= code/2; i++) {
            for (int j = -code/2; j <= code/2; j++) {
                if(i * i + j * j < code/2*code/2 && i * i + j * j > (code-2.5)/2*(code-2.5)/2) {
                    System.out.print("■");
                }else {
                    System.out.print("□");
                }
            }
            System.out.println("");
        }
        sc.close();
    }
}

2021/05/24 17:32

A-assasin Kr

for y in range(31):
    for x in range(31):
        if 15**2 - 15 < (x-15)**2 + (y-15)**2 < 15**2 + 15:
            print('■', end='')
        else:
            print('□', end='')
    print('')

2021/05/26 14:36

songci

n=int(input("원을 그릴 크기를 정해주세요(가로세로길이)  "))
i=0
j=0
printo=''
while i<n:
    while j<n:
        if abs((n-3)/2)<=(math.sqrt((i+0.5-n/2)**2+(j+0.5-n/2)**2))<=(n-1)/2:
            printo+="■"
            j+=1

        else:
            printo+="□"
            j+=1
    printo+='\n'
    j=0
    i+=1

print(printo)

설명할 게 없네용...

2021/06/15 01:35

Happy Day

자바로 만든 소스입니다.

package circle;

import java.util.*;

public class circle {
    public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);

    System.out.print("사이즈를 입력하시오 : ");
    int num = sc.nextInt(); //정수 입출력 변수
    for (int i = -num; i <= num; i++) { //i = 세로줄, -num : 원의방정식 도입
        for (int j = -num; j <= num; j++) { //j = 가로줄, -num : 원의방정식 도입
            if (i*i + j*j < num*num && i*i + j*j >= (num-1)*(num-1)) { 
                System.out.print("■");
            }
            else
                System.out.print("□");
        }
        System.out.println("");
        }
    }
}

2021/11/02 12:18

황도연

import math

N = int(input("Size:")) half = (N-1)/2

for i in range(N): x = i - half for j in range(N): y = j - half k = math.sqrt(x2 + y2) if half-1 < k <= half: print("■", end='') else: print("□", end='') print()

2022/06/14 20:26

for Heuristic Life ksh

from math import sqrt

size = int(input("Size: "))
mid = (size-1)/2

for i in range(size):
    x = i - mid
    for j in range(size):
        y = j - mid
        r = sqrt(x**2 + y**2)
        if mid-1 < r <= mid:
            print("■", end=' ')
        else:
            print("□", end=' ')
    print()
□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □
□ □ □ □ □ □ □ □ □ □ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ □ □ □ □ □ □ □ □ □
□ □ □ □ □ □ □ □ ■ ■ □ □ □ □ □ □ □ □ □ □ ■ ■ □ □ □ □ □ □ □ □
□ □ □ □ □ □ ■ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ ■ □ □ □ □ □ □
□ □ □ □ □ ■ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ ■ □ □ □ □ □
□ □ □ □ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □ □ □ □
□ □ □ ■ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ ■ □ □ □
□ □ □ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □ □ □
□ □ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □ □
□ □ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ □ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □ □
□ □ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □ □
□ □ □ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □ □ □
□ □ □ ■ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ ■ □ □ □
□ □ □ □ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □ □ □ □
□ □ □ □ □ ■ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ ■ □ □ □ □ □
□ □ □ □ □ □ ■ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ ■ □ □ □ □ □ □
□ □ □ □ □ □ □ □ ■ ■ □ □ □ □ □ □ □ □ □ □ ■ ■ □ □ □ □ □ □ □ □
□ □ □ □ □ □ □ □ □ □ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ □ □ □ □ □ □ □ □ □
□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □

2022/10/24 21:26

isaac024

r = int(input("사이즈를 입력하세요 : "))
for y in range(r*2):
    for x in range(r*2):
        if -r < (r-2)**2-((x-r)**2+(y-r)**2) < r:
            print('■',end='')
        else:
            print('□',end='')
    print()

2023/01/17 19:46

Shiroha

import math

size = int(input('Size: '))
r = size // 2

for row in range(size+1):
    y = row - r + 0.5
    for col in range(size+1):
        x = col - r + 0.5
        p = math.sqrt(y**2 + x**2)
        if r-0.5 < p <= r:
            print("■", end='  ')
        else:
            print("□", end='  ')
    print()

2023/06/30 19:08

insperChoi

blocks=int(input("몇칸짜리 원을 만들까요?"))
 r=(blocks-3)/2
circle=[]
pie=blocks/3.14
if blocks<9:
    pie=1
for i in range(0,blocks):
    for j in range(0,blocks):

        length=(i-r-1)**2+(j-r-1)**2
        if  abs((r**2)-length)<pie:
            print("■",end=" ")
        else:
            print("□",end=" ")
    print()

2024/02/10 23:17

Dr.Choi

목록으로