728x90
728x90

문제

(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.

(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.

 

입력

첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.

 

출력

첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

 

예제 입력 1

472
385

 

예제 출력 1 

2360
3776
1416
181720

 

출처

Olympiad > 한국정보올림피아드 > 한국정보올림피아드시․도지역본선 > 지역본선 2005 > 초등부 2번

 

알고리즘 분류

  • 수학
  • 사칙연산
 

 

문제 출처

https://www.acmicpc.net/problem/2588

 

2588번: 곱셈

첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

www.acmicpc.net

 


 

문제 해결 방법

  • (3)은 (1)과 (2)의 일의 자릿수를 곱한 결과값과 같다.
    • (2)의 일의 자릿수 = (2) % 10 
  • (4)는 (1)과 (2)의 십의 자릿수를 곱한 결과값과 같다.
    • (2)의 십의 자릿수 = [(2) % 100] / 10
  • (5)는 (1)과 (2)의 백의 자릿수를 곱한 결과값과 같다.
    • (2)의 백의 자릿수 = (2) / 100
  • 최종적으로 (3), (4), (5)의 값과 (1) * (2)의 값을 출력하도록 하여 문제를 해결하였다.

 

코드

#include <iostream>
using namespace std;

int main() {
    cin.tie(NULL);
    cout.tie(NULL);
    ios_base::sync_with_stdio(false);

    int num1, num2;

    cin >> num1 >> num2;    // (1), (2)

    cout << num1 * (num2 % 10) << endl;             // (3)
    cout << num1 * ((num2 % 100) / 10) << endl;     // (4)
    cout << num1 * (num2 / 100) << endl;            // (5)
    cout << num1 * num2 << endl;                    // (6)

    return 0;
}

 

채점 결과

 

참고

  • [단계별로 풀어보기] > [입출력과 사칙연산]

 

728x90
728x90

'Problem Solving > BOJ' 카테고리의 다른 글

[BOJ-2753][C++] 윤년  (0) 2022.07.08
[BOJ-9498][C++] 시험 성적  (0) 2022.07.08
[BOJ-1330][C++] 두 수 비교하기  (0) 2022.07.08
[BOJ-25083][C++] 새싹  (0) 2022.07.07
[BOJ-10430][C++] 나머지  (0) 2022.07.07
[BOJ-18108][C++] 1998년생인 내가 태국에서는 2541년생?  (0) 2022.07.07
[BOJ-10926][C++] ??!  (0) 2022.07.07
[BOJ-10869][C++] 사칙연산  (0) 2022.07.07