비트맵 방식으로 적당하게 그린 원(동그라미)을 출력해보세요. 사이즈를 입력받아 이것이 도화지의 가로와 세로의 길이가 되도록 하고, 도화지는 "□" 기호로 채우고, 원은 "■"으로 그려봅니다.
힌트: 원의 방정식은 x^2 + y^2 = (반지름)^2 입니다.
#예시
사이즈를 입력하세요?30
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□■■■■■■■■■■□□□□□□□□□□
□□□□□□□□■■□□□□□□□□□□■■□□□□□□□□
□□□□□□□■□□□□□□□□□□□□□□■□□□□□□□
□□□□□■■□□□□□□□□□□□□□□□□■■□□□□□
□□□□■■□□□□□□□□□□□□□□□□□□■■□□□□
□□□□■□□□□□□□□□□□□□□□□□□□□■□□□□
□□□■□□□□□□□□□□□□□□□□□□□□□□■□□□
□□■□□□□□□□□□□□□□□□□□□□□□□□□■□□
□□■□□□□□□□□□□□□□□□□□□□□□□□□■□□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□■□□□□□□□□□□□□□□□□□□□□□□□□□□■□
□□■□□□□□□□□□□□□□□□□□□□□□□□□■□□
□□■□□□□□□□□□□□□□□□□□□□□□□□□■□□
□□□■□□□□□□□□□□□□□□□□□□□□□□■□□□
□□□□■□□□□□□□□□□□□□□□□□□□□■□□□□
□□□□■■□□□□□□□□□□□□□□□□□□■■□□□□
□□□□□■■□□□□□□□□□□□□□□□□■■□□□□□
□□□□□□□■□□□□□□□□□□□□□□■□□□□□□□
□□□□□□□□■■□□□□□□□□□□■■□□□□□□□□
□□□□□□□□□□■■■■■■■■■■□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
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()
자바입니다.
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();
}
}
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('')
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)
설명할 게 없네용...
자바로 만든 소스입니다.
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("");
}
}
}
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()
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()
□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □
□ □ □ □ □ □ □ □ □ □ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ □ □ □ □ □ □ □ □ □
□ □ □ □ □ □ □ □ ■ ■ □ □ □ □ □ □ □ □ □ □ ■ ■ □ □ □ □ □ □ □ □
□ □ □ □ □ □ ■ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ ■ □ □ □ □ □ □
□ □ □ □ □ ■ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ ■ □ □ □ □ □
□ □ □ □ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □ □ □ □
□ □ □ ■ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ ■ □ □ □
□ □ □ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □ □ □
□ □ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □ □
□ □ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □
□ □ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □ □
□ □ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □ □
□ □ □ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □ □ □
□ □ □ ■ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ ■ □ □ □
□ □ □ □ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □ □ □ □
□ □ □ □ □ ■ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ ■ □ □ □ □ □
□ □ □ □ □ □ ■ ■ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ ■ □ □ □ □ □ □
□ □ □ □ □ □ □ □ ■ ■ □ □ □ □ □ □ □ □ □ □ ■ ■ □ □ □ □ □ □ □ □
□ □ □ □ □ □ □ □ □ □ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ □ □ □ □ □ □ □ □ □
□ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □
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()