하찮은 19학번 컴공대생
yoonbot's devlog

백준 오답노트 (BOJ) 🚩/실버 (Silver) 🥈

< BOJ Silver V > 1312 : 소수

yoonbot_code 2022. 4. 6. 09:03
 

1312번: 소수

피제수(분자) A와 제수(분모) B가 있다. 두 수를 나누었을 때, 소숫점 아래 N번째 자리수를 구하려고 한다. 예를 들어, A=3, B=4, N=1이라면, A÷B=0.75 이므로 출력 값은 7이 된다.

www.acmicpc.net

 

1. 목적: 3 정수 a, b, n 입력 받아 a와 b의 몫을 구하고 소숫점 아래 n번째의 수를 출력하라 

 

2. 해결책: 처음에 구한 a / b의 나머지 값을 n - 1 만큼 반복적으로 10을 곱하고 나오는 몫과 나머지를 구하면 n번째 소수를 구할 수 있다. 

 

3. 소스코드: 
C언어

#include <stdio.h>

int main(){
    int a, b, c, n;
    scanf("%d %d %d", &a, &b, &n);
    while (n--) a %= b, a *= 10, c = a / b;
    printf("%d\n", c);
    return 0;
}

C++

#include <iostream>
using namespace std;

int main(){
    int a, b, c, n;
    cin >> a >> b >> n;
    while (n--) a %= b, a *= 10, c = a / b;

    cout << c << endl;
    return 0;
}