728x90
반응형
JUNGOL 정보올림피아드&알고리즘에서 학습용으로 문제를 가져왔습니다. 문제가 될 시 수정, 삭제하겠습니다.
문제
원하는 구구단의 범위를 입력받아 해당 구간의 구구단을 출력하는 프로그램을 작성하시오.
<처리조건>
(1) 구간의 처음과 끝을 입력받는다.
(2) 입력된 구간은 반드시 처음 입력 값이 끝의 입력 값보다 작아야 하는 것은 아니다.
즉, 입력된 구간의 범위는 증가하거나 감소하는 순서 그대로 출력되어야 한다.
입력 형식
구구단의 시작 범위 s와 끝 범위 e가 주어진다. (s와 e는 2부터 9사이의 정수)
출력 형식
시작 범위와 끝 범위사이의 구구단을 출력하되 모든 값과 부호 사이는 공백으로 구분하여 아래 출력 예와 같이 줄을 맞추어 출력해야 한다. 식과 식 사이는 3개의 공백으로 구분하고 구구단 사이에는 한 줄을 비워 두도록 한다.
입력 예
4 3
출력 예
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12
4 * 4 = 16 4 * 5 = 20 4 * 6 = 24
4 * 7 = 28 4 * 8 = 32 4 * 9 = 36
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
3 * 4 = 12 3 * 5 = 15 3 * 6 = 18
3 * 7 = 21 3 * 8 = 24 3 * 9 = 27
code
while True:
s,e=map(int,input().split())
if (s>=2 and s<=9) and (e>=2 and e<=9):
if s>e:
for i in range(s,e-1,-1):
for j in range(1,10):
if j*i>=10:
print("%d * %d = %d"%(i,j,j*i),end=" ")
elif j*i<10:
print("%d * %d = %d"%(i,j,j*i),end=" ")
if j%3==0:
print("",end="\n")
if i==e:
break
else:
print("")
break
elif s<e:
for i in range(s,e+1):
for j in range(1,10):
if j*i>=10:
print("%d * %d = %d"%(i,j,j*i),end=" ")
elif j*i<10:
print("%d * %d = %d"%(i,j,j*i),end=" ")
if j%3==0:
print("",end="\n")
if i==e:
break
else:
print("")
break
elif s==e:
for i in range(s,s+1):
for j in range(1,10):
if j*i>=10:
print("%d * %d = %d"%(i,j,j*i),end=" ")
elif j*i<10:
print("%d * %d = %d"%(i,j,j*i),end=" ")
if j%3==0:
print("",end="\n")
if i==s:
break
else:
print("")
break
else:
print("INPUT ERROR")
pass
효율성을 높일 수는 없었지만 의외로 간단한 문제였다.
반응형
'Programming > JUNGOL : 정보올림피아드&알고리즘' 카테고리의 다른 글
[JUNGOL 도형만들기1-1856]: 숫자사각형2 (0) | 2021.08.19 |
---|---|
[JUNGOL 도형만들기1-1303]: 숫자사각형1 (0) | 2021.08.19 |
[JUNGOL 도형만들기1-1291]: 구구단 (0) | 2021.08.17 |
[JUNGOL 문자열2]:602~612 (0) | 2021.08.16 |
[JUNGOL 문자열1]:593~188 (1) | 2021.08.15 |