[C++] 백준 1009 번 문제 해설

2021. 7. 18. 04:03·Algorithm/BACKJOON
 

1009번: 분산처리

입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000)

www.acmicpc.net

 

 

정말 간단한 문제이다.

논리적으로 조금만 생각해 보면 어렵지 않게 풀 수 있다.

 

 

설명

 

위 문제의 키포인트는 '마지막 자리' 숫자만 출력하면 된다는 것이다.

위의 예제입력 9 635 의 경우엔 9의 635 제곱을 하라는 의미인데,

이런식으로 연산하는것은 자원 낭비가 심할뿐더러

추가 라이브러리를 이용하지 않는다면 overflow 를 일으킬 것이다.

마지막 자리만 구하기 위해서는 굳이 모든 연산을 할 필요가 없다

 

 

코드

#include <iostream>

using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    
    unsigned int nums, a, b, output;
    
	scanf("%d", &nums);

    for (int i = 0; i < nums; ++i)
    {
        output = 1;

        scanf("%d %d", &a, &b);

        for (int j = 0; j < b; ++j)
        {
            output = (output * a) % 10;
        }

        if (output == 0)
        {
            output = 10;
        }
        
        printf("%d\n", output);
    }
}​​​

 

간단하다.

마지막 자리는 그 자리의 연산만 영향을 준다.

생각 해 보자.

9 * 9 * 9 * 9 * 9 * 9 = 마지막 자리가 뭘까?

 

 

실제로 계산해 보면 1 이 나온다.

하지만 직접 제곱할 필요가 없다고 위에서도 언급했다.

9 * 9 = 8'1'

1 * 9 = '9'

9 * 9 = '1'

1 * 9 = '9'

9 * 9 = '1'

 

과 같이 도출될 수 있다.

문제에서 % 10 이 바로 그 의미이다.

 

끝

저작자표시 비영리 변경금지 (새창열림)

'Algorithm > BACKJOON' 카테고리의 다른 글

[C++] 백준 2166번 문제 해설  (0) 2022.06.29
[C++] 백준 1305 번 문제 해설  (0) 2022.06.03
[C++] 백준 19942 번 문제 풀이  (0) 2021.08.08
[C++] 백준 2292 문제 해설  (0) 2021.06.27
[C++] 백준 3273 문제 해설  (0) 2021.06.26
'Algorithm/BACKJOON' 카테고리의 다른 글
  • [C++] 백준 1305 번 문제 해설
  • [C++] 백준 19942 번 문제 풀이
  • [C++] 백준 2292 문제 해설
  • [C++] 백준 3273 문제 해설
Cyp
Cyp
  • Cyp
    Cyp Software Blog
    Cyp
  • 전체
    오늘
    어제
    • Cyp Blog (163) N
      • Artificial Intelligence (40) N
        • Article (21) N
        • Post (2)
        • Basic (14)
        • Preferences (3)
      • Cyber Security (1)
      • Programming (46)
        • C++ (21)
        • C# (19)
        • Python (2)
        • Rust (0)
        • Java (1)
      • Algorithm (17)
        • BACKJOON (15)
      • Operating System (14)
        • WSL (2)
        • Windows (1)
        • Linux (5)
        • Security (3)
      • Tools (26)
        • Docker (3)
        • DataBase (2)
        • SSH (1)
        • Doxygen (2)
        • Etc (17)
      • Miscellaneous (19)
        • Book (2)
        • Hardware (2)
        • Hevel (1)
  • 블로그 메뉴

    • Home
    • Guest Book
  • 공지사항

    • 블로그 업데이트 노트
    • 블로그 운영방침
  • 인기 글

  • 태그

    Bom
    C4819
    y-cruncher
    UTF-8 without BOM
    utf-8 bom
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Cyp
[C++] 백준 1009 번 문제 해설
상단으로

티스토리툴바