N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다.
➡️입력
첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 9보다 작거나 같다.
⬅️출력
출력형식과 같게 N1부터 N9까지 출력한다.
예제 입력 1
2
예제 출력 1
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
for문 정말 오랜만이네요. 한 문제 풀 때마다 하루 한 문제씩 풀길 잘 했다는 생각 뿐,,ㅋㅋ 평일이라도 하루 한 문제씩 안 풀고 방학 다 지나갔으면 개강 쯤이면 다 까먹은 상태였을 것 같아요...
#include <stdio.h> int main() { int N; scanf("%d", &N); for (int i=1; i<10; i++) printf("%d * %d = %d\n", N, i, N*i); return 0; }
워낙 기본 유형인 데에다 새 언어 배울 때마다 풀어본 문제여서 한 번에 맞췄네용ㅎㅎ 반복 학습 + 시험의 효과
#include <iostream> using namespace std; int main(){ int N; cin >> N; for (int i=1; i<=9; i++) cout << N << " * " << i << " = " << N*i << endl; return 0; }
반복코드 마지막에 endl로 개행을 안 해줘서 틀렸다가 후딱 고쳤습니당ㅎㅎ
C++ for문은 처음인만큼 기본 틀 정리하고 넘어가겠습니다.
for문: 특정 코드를 반복하기 위해 쓰는 반복문
예를 들어 화면에 Hello World를 10번 출력하려고 하면 아래와 같이 작성할 수 있는데요,
cout << "Hello World";
cout << "Hello World";
cout << "Hello World";
cout << "Hello World";
cout << "Hello World";
cout << "Hello World";
cout << "Hello World";
cout << "Hello World";
cout << "Hello World";
cout << "Hello World";
이렇게 같은 코드를 10번씩 작성하는 것은 매우 비효율적이죠?
효율성을 높이기 위해 for문을 사용하면 됩니다.
C++도 C에서처럼 for(초기 설정; 반복 조건; 반복 시 수행할 명령)
로 시작한 후 이 뒤의 중괄호{} 안에 반복할 문장을 써주면 됩니다.
for(초기 설정; 반복 조건; 반복 시 수행할 명령) {
반복할 문장;
}
그럼 위의 10줄짜리 코드를 출력하려면 어떻게 하면 될까요?
①
for(int i=0; i<10; i++) {
cout << "Hello World";
}
for문의 괄호 안의 초기 설정 부분에 i=1을 작성했죠?
반복문이 시작되기 전 변수 i에는 1이 저장됩니다.
for문이 시작되면 반복할 문장
부분이 실행됩니다.
즉, 화면에 Hello World가 출력됩니다.
반복할 문장
이 실행된 후 반복 시 수행할 명령
이 시행됩니다.
반복 시 수행할 명령 부분에 i++이 작성되어 있죠?
반복할 문장
이 1번 실행될 때마다 i값이 1씩 증가합니다.
위 과정은 반복 조건
이 충족될 때까지 반복됩니다.
반복 조건 부분에 i<10이 작성되어 있죠?
i가 1씩 증가해 9가 될 때까지 반복할 문장
②
int i;
for(i=0; i<10; i=i+1) {
cout << "Hello World";
}
①, ② 코드 둘 다 Hello World를 10번 출력하는 코드입니다.
둘의 차이점은 무엇일까요?
①에서는 정수형 변수 int를 for문 안에서 선언해줬고
②에서는 int를 for문 시작 전에 선언해줬습니다.
①처럼 for문 안에서 선언해준 i는 for문 내에서만 사용 가능합니다.
for문을 빠져 나오는 순간 없는 변수인 셈이죠.
반면 ②는 i를 for문 밖에서 선언해줬으므로 for문 내부, 외부 모두에서 사용이 가능한 변수가 됩니다.
한 가지 예를 더 살펴보겠습니다.
int i;
for(i=1; i<=10; i=i+1) {
cout << i;
}
위 코드를 실행하면 어떤 결과가 출력될까요?
i=1(초기 설정)부터
i가 10이하인 동안(i<=10)
1씩 증가(i=i+1)하면서
매 회 i를 출력합니다.
즉 출력 결과는 아래와 같게 됩니다.
1 2 3 4 5 6 7 8 9 10