728x90

 

 

 

문제

0보닀 ν¬κ±°λ‚˜ κ°™κ³ , 99보닀 μž‘κ±°λ‚˜ 같은 μ •μˆ˜κ°€ μ£Όμ–΄μ§ˆ λ•Œ λ‹€μŒκ³Ό 같은 연산을 ν•  수 μžˆλ‹€. λ¨Όμ € 주어진 μˆ˜κ°€ 10보닀 μž‘λ‹€λ©΄ μ•žμ— 0을 λΆ™μ—¬ 두 자리 수둜 λ§Œλ“€κ³ , 각 자리의 숫자λ₯Ό λ”ν•œλ‹€. κ·Έ λ‹€μŒ, 주어진 수의 κ°€μž₯ 였λ₯Έμͺ½ 자리 μˆ˜μ™€ μ•žμ—μ„œ κ΅¬ν•œ ν•©μ˜ κ°€μž₯ 였λ₯Έμͺ½ 자리 수λ₯Ό 이어 뢙이면 μƒˆλ‘œμš΄ 수λ₯Ό λ§Œλ“€ 수 μžˆλ‹€. λ‹€μŒ 예λ₯Ό 보자.

26λΆ€ν„° μ‹œμž‘ν•œλ‹€. 2+6 = 8이닀. μƒˆλ‘œμš΄ μˆ˜λŠ” 68이닀. 6+8 = 14이닀. μƒˆλ‘œμš΄ μˆ˜λŠ” 84이닀. 8+4 = 12이닀. μƒˆλ‘œμš΄ μˆ˜λŠ” 42이닀. 4+2 = 6이닀. μƒˆλ‘œμš΄ μˆ˜λŠ” 26이닀.

μœ„μ˜ μ˜ˆλŠ” 4λ²ˆλ§Œμ— μ›λž˜ 수둜 λŒμ•„μ˜¬ 수 μžˆλ‹€. λ”°λΌμ„œ 26의 μ‚¬μ΄ν΄μ˜ κΈΈμ΄λŠ” 4이닀.

N이 μ£Όμ–΄μ‘Œμ„ λ•Œ, N의 μ‚¬μ΄ν΄μ˜ 길이λ₯Ό κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

 

 

좜λ ₯

첫째 쀄에 N의 사이클 길이λ₯Ό 좜λ ₯ν•œλ‹€.

 

 

μ½”λ“œ (더보기λ₯Ό 눌러 ν™•μΈν•˜μ„Έμš”)

더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
int main() {
    int A,sum=0,count=0;
    int a1,a2;
    scanf("%d",&A);
    sum=A;
    if(A>=0&&A<=99){
        while(1){
            a1=(sum%10)*10;
            a2=((sum%10)+(sum/10))%10;
            sum=a1+a2;
            count++;
            if(sum==A)break;
        }
        printf("%d",count);
    }
    return 0;
}
cs

 

*κ°„λ‹¨ν•œ ν•΄μ„€*

결과적으둜 ν•΄λ‹Ή λ¬Έμ œλŠ” %μ—°μ‚°κ³Ό /연산을 ν™œμš©ν•˜λŠ” 방법에 λŒ€ν•œ 문제인 것 κ°™λ‹€.

%연산은 λ‚˜λ¨Έμ§€κ°’μ„ /연산은 λͺ«μ„ 얻을 수 μžˆλŠ” μ—°μ‚°μžμ΄λ‹€.

λ°±μ€€μ—μ„œ μ΄μƒν–ˆλ˜κ²Œ 같은 값을 λ„μΆœν–ˆμ§€λ§Œ while(쑰건문)을 μ‚¬μš©ν•΄μ„œ ν–ˆμ„ λ•ŒλŠ” 틀렸닀라고 뜨고 while(1)κ³Ό break;문을 μ“°λ‹ˆ ν•΄κ²°λ˜μ—ˆλ‹€.

 

 

*λ©”λͺ¨λ¦¬*

1984KB

*μ‹œκ°„*

0ms

*μ–Έμ–΄*

C++14

*μ½”λ“œ 길이*

280B

 

 

*이 λ°©λ²•λ§Œμ΄ λ§žλŠ” μ •λ‹΅μ€ μ•„λ‹™λ‹ˆλ‹€.
훨씬 μ’‹κ³  λΉ λ₯Έ λ‹€λ₯Έ μ•Œκ³ λ¦¬μ¦˜μ„ κ΅¬ν˜„ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
μ•Œκ³ λ¦¬μ¦˜ κ³΅λΆ€ν•˜μ‹œλŠ” λΆ„λ“€ ν™”μ΄νŒ…! '0'/*

λ°˜μ‘ν˜•

'μ•Œκ³ λ¦¬μ¦˜ > BaekJoon' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

BOJ 2523번: 별 찍기 - 13  (0) 2020.07.29
BOJ 10817번: μ„Έ 수  (0) 2020.07.29
BOJ 15552번: λΉ λ₯Έ A+B  (0) 2020.06.15
BOJ 2753번: μœ€λ…„  (0) 2020.06.13
BOJ 9498번: μ‹œν—˜ 성적  (0) 2020.06.11

+ Recent posts