본문 바로가기
ONLINE JUDGE/제어문

[백준1110] 더하기 사이클

by W_W_Woody 2022. 2. 8.

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문

[Java] 💻제어문

 

 

 

'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

댓글