본문 바로가기
백준

[백준] 단계별로 풀어보기(단계:4,while문,JAVA)1110번, 더하기 사이클

by 열정적인 이찬형 2021. 12. 11.

문제 링크

1110번: 더하기 사이클
 
www.acmicpc.net

주의사항

  • JAVA를 사용하여 프로그램을 사용하였습니다.
  • 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.
public class Main{ 	
	public static void main(String[] args){
    }
}

문제 설명


접근 방법

  • BufferedReader를 사용하여 입력값을 저장합니다.
  • while 무한 반복에서 동일한 값이 나오면 break를 통해 빠져나오도록 설계하였습니다.
  • 함수 addCycle을 정의하여 연산을 하도록 하였습니다.
  • ((n/10) + (n%10))%10 : 십의 자리와 일의 자리의 숫자 더하기
  • (n%10)*10 : 일의 자리 숫자 십의 자리 숫자로 사용하기
  • System.out.println()을 사용하여 Cycle 값을 출력하였습니다.

결과 코드

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));
        //입력 값을 받는 BufferedReader
        int num = Integer.parseInt(br.readLine());		//입력 값
        int temp = num;
        int cycle=0;						//사이클 값
        while(true){
            temp = addCycle(temp);
            cycle++;
            if(temp==num){					//while 연산 후 입력 값과 동일하면 반복 종료
                break;
            }
        }
        System.out.println(cycle);				//결과 출력
    }
    public static int addCycle(int n){				//연산 함수
        int result;
        result = ((n/10) + (n%10))%10 + (n%10)*10;
        return result;
    }
}

댓글