[백준] 1110번 더하기 사이클 풀이 코드 (C/C++/Java 자바/Python 파이썬)

풀이

문제에 주어진 규칙에 따라 수를 계산하면서 사이클을 1씩 더하고 출력하는 문제입니다.
규칙 : 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙여 새로운 수를 만든다.


코드

C

#include <stdio.h>

int main() {
    int ogn, chg, tmp, a, b, c, cycle = 0;
    scanf("%d", &ogn);
    tmp = ogn;
    
    while(1) {
        a = tmp/10;
        b = tmp%10;
        c = a + b;
        chg = b * 10 + c % 10;
        cycle++;
        if(ogn == chg)
            break;
        else
            tmp = chg;
    }
    
        printf("%d", cycle);
        return 0;
}

C++

#include <iostream>
using namespace std;

int main() {
    int ogn, chg, a, b, c, cycle = 0;
    cin >> ogn;
    int tmp = ogn;

    while (1) {
        a = tmp/10, b = tmp%10, c = a + b;
        chg = b * 10 + c % 10;
        cycle++;
        if (ogn == chg) {
            break;
        }
        else {
            tmp = chg;
        }
    }
    cout << cycle;
    return 0;
}

Java

import java.util.*;

class Main{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        int ogn = sc.nextInt();
                int cycle = 0, tmp = ogn;
        
        while (true) {
            int a = tmp/10, b = tmp%10, c = a + b;
            int chg = b * 10 + c % 10;
            cycle++;
            if (ogn == chg) {
                break;
            }
            else {
                tmp = chg;
            }
        }
        System.out.println(cycle);
    }
}

Python

ogn = int(input())
cycle = 0
tmp = ogn

while True:
    a = tmp//10
    b = tmp%10
    c = a + b
    chg = b*10 + c%10
    cycle += 1
    if ogn == chg:
        break
    else:
        tmp = chg
print(cycle)

문제 출처

https://www.acmicpc.net/problem/1110

Related posts

블로그 이사

[Codeforces] 50A Domino piling 풀이 코드 (C/C++/Java /Python)

[Codeforces] 1538B Friends and Candies 풀이 코드 (C/C++/Java /Python)