https://www.acmicpc.net/problem/1110
1110번: 더하기 사이클
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,
www.acmicpc.net
문제를 곧이 곧대로 받아들여서 if문으로 조건체크하는것보다
값을 10으로 나눈값과 10으로 나눈나머지값으로 10의자리와 1의자리 계산함으로써 자동 조건체크거친다.
package step3;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Day14_1110_2 {
public static void main(String[] args)throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int cycle=N;
int count = 0;
do {
cycle = ((cycle%10)*10)+ ((cycle%10) + (cycle/10))%10 ;
count++;
}while(N!=cycle);
System.out.println(count);
br.close();
}
}
N = 주어진 수
A = 새로운 수
A = (N / 10) // A의 십의 자리에 위치한 수
(N / 10) * 10 // A의 십의 자리 수
A = (N % 10) // A의 일의 자리에 위치한 수
package step3;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Day14_1110_3 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int cnt = 0;
int copy = N;
do {
N = ((N % 10) * 10) + (((N / 10) + (N % 10)) % 10);
cnt++;
} while (copy != N);
System.out.println(cnt);
}
}
do~while문
'ONLINE JUDGE > 제어문' 카테고리의 다른 글
[백준10951] A+B-4 (EOF) (0) | 2022.02.04 |
---|---|
[백준10952] A+B-5 (0) | 2022.02.02 |
[백준10871] X보다 작은 수 (0) | 2022.02.02 |
[백준15552] 빠른A+B (0) | 2022.02.02 |
[백준11021/11022] A+B-7/A+B-8 (0) | 2022.02.02 |
댓글