코테/백준
[백준/JAVA] 1850번: 최대공약수
imname1am
2023. 4. 26. 12:05
반응형
ㅇ🔺 문제
1850번: 최대공약수
모든 자리가 1로만 이루어져있는 두 자연수 A와 B가 주어진다. 이때, A와 B의 최대 공약수를 구하는 프로그램을 작성하시오. 예를 들어, A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, A
www.acmicpc.net
🔺 코드
- 틀림
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
long a = Long.parseLong(st.nextToken());
long b = Long.parseLong(st.nextToken());
long result = gcd(a, b);
long num = 0;
for(long i = 0 ; i < result ; i++) {
num += Math.pow(10, i);
}
bw.write(num +"\n");
bw.flush();
bw.close();
}
// 최대공약수 계산
public static long gcd(long a, long b) {
if(b == 0)
return a;
else
return gcd(b, a % b);
}
}
|
cs |
정답은 천만 자리를 넘지 않는다고 하는데,
이 수가 너무 커서 long long에 담길 수 없기 때문이라 함.
글 읽기 - 알맞게 한 것 같으나 틀렸다고 합니다
댓글을 작성하려면 로그인해야 합니다.
www.acmicpc.net
- 정답
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
long a = Long.parseLong(st.nextToken());
long b = Long.parseLong(st.nextToken());
long result = gcd(a, b);
long num = 0;
while(result > 0) {
bw.write("1");
result--;
}
bw.flush();
bw.close();
}
// 최대공약수 계산
public static long gcd(long a, long b) {
if(b == 0)
return a;
else
return gcd(b, a % b);
}
}
|
cs |
✅ 해결 아이디어
✔ 유클리드 호제법
- 1 출력 : 최대공약수만큼 출력
💥 유의사항
⇨ 위에도 썼듯, 숫자가 너무 커서 Math.pow(10, i)
로는 숫자를 담을 수 없다 함.
⇨ 시간 초과가 발생할 수 있으므로 BufferedWriter를 써줘야 함.
💬 느낀 점
재밌구나..
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
✔ Math.pow(10, i)가 틀린 이유...
글 읽기 - 알맞게 한 것 같으나 틀렸다고 합니다
댓글을 작성하려면 로그인해야 합니다.
www.acmicpc.net
반응형