문제
원하는 구구단의 범위를 입력받아 해당 구간의 구구단을 출력하는 프로그램을 작성하시오.
<처리조건>
(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
처리조건
(1) 구간의 처음과 끝을 입력받는다.
(2) 입력된 구간은 반드시 처음 입력 값이 끝의 입력 값보다 작아야 하는 것은 아니다.
- 입력된 구간의 범위는 증가하거나 감소하는 순서 그대로 출력되어야 한다.
- 3, 5 가 입력 될 수 도 있고 5, 3 이 입력 될 수 도 있다는 뜻이며 내림차순, 오름차순이 둘다 가능하다는 뜻이다.
입력형식
구구단의 시작 범위 s, 와 끝 범위 e를 입력받는다. (s와 e는 2부터 9사이의 정수)
<입력의 설계>
범위를 맞춰서 입력받으며, 입력범위를 벗어났을 경우에 따로 출력할 형식이 없어서 1291 구구단 문제보다 단순한 편이다.
while (1)
{
scanf("%d %d", &s, &e);
if (s >= 2 && s <= 9 && e >= 2 && e <= 9) break;
}
출력형식
시작 범위와 끝 범위사이의 구구단을 출력하되 모든 값과 부호 사이는 공백으로 구분하여 아래 출력 예와 같이 줄을 맞추어 출력해야 한다. 식과 식 사이는 3개의 공백으로 구분하고 구구단 사이에는 한 줄을 비워 두도록 한다.
- j 가 3의 배수일때 마다 줄을 바꾸면 됨
- 1단이 더 끝나면 줄을 한번 더 바꾸면 됨
1291 문제와 비슷한데, 형식만 바꾸면 되어서 아주 쉬운 문제이다.
제출답변
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int s, e;
int i, j;
while (1)
{
scanf("%d %d", &s, &e);
if (s >= 2 && s <= 9 && e >= 2 && e <= 9) break;
}
if (s < e)
{
for (i = s; i <= e; i++)
{
for (j = 1; j <= 9; j++)
{
printf("%d * %d = %2d ", i, j, i * j);
if (j % 3 == 0) printf("\n");
}
printf("\n");
}
}
else
{
for (i = s; i >= e; i--)
{
for (j = 1; j <= 9; j++)
{
printf("%d * %d = %2d ", i, j, i * j);
if (j % 3 == 0) printf("\n");
}
printf("\n");
}
}
return 0;
}
'Algorithm > Jungol (도형만들기1)' 카테고리의 다른 글
[2046] 숫자사각형4 (0) | 2023.09.12 |
---|---|
[1304] 숫자사각형3 (0) | 2023.09.12 |
[1856] 숫자사각형2 (0) | 2023.09.12 |
[1303] 숫자사각형1 (0) | 2023.09.12 |
[1291] 구구단 (0) | 2023.09.12 |