주어지는 정수 N을 이용해 바뀌는 N의 십의 자리수와 일의 자리수를 구하여 원래 수로 돌아올 때까지 연산 반복
주어지는 정수가 N (N>=0 , N<=99)이라고 할 때 연산식을 A+B=C 라고 하면,
A=N/10 -> 정수 N의 십의 자리수
B=N%10 -> 정수 N의 일의 자리수
C=((N/10)*10)+N
새롭게 만들어지는 정수를 T라고 하면,
T =B*10 + C%10 // 십의자리로 만들어주어야 하기 때문에 B에 10을 곱함
=((N/10)*10) + ((A+B)%10)
=((N/10)*10) + ((N/10+N%10)%10)
- BufferedReader & BufferedWriter 이용
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main03 {
public static void main(String[] args) throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
int N=Integer.parseInt(br.readLine());
br.close();
int N_copy=N;
int count=0;
while(true) {
N=((N%10)*10)+(((N/10)+(N%10))%10);
count++;
if(N_copy == N) {
break;
}
}
bw.write(String.valueOf(count));
bw.flush();
bw.close();
}
}
- Scanner & System.out.println(); 이용
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int N=sc.nextInt();
sc.close();
int copy_N=N;
int count=0;
while(true) {
N=((N%10)*10)+(((N/10)+(N%10))%10);
count++;
if(copy_N == N) {
break;
}
}
System.out.println(count);
}
}
'코딩테스트 > programming_JAVA' 카테고리의 다른 글
[Java] 프로그래머스_120853 : 컨트롤 제트 (0) | 2023.08.06 |
---|---|
[Java] 프로그래머스_181868 : 공백으로 구분하기 2 (0) | 2023.07.05 |
[Java] baekjoon_10951번 : EOF (0) | 2021.09.03 |
[Java] baekjoon_10871번: StringBuilder (0) | 2021.09.02 |
[Java] baekjoon_15552번: BufferReader, BufferWriter (0) | 2021.08.31 |