반응형
백준 더하기 사이클 문제 풀이
입력한 값 n을 이용해서 x,y를 만들고 (x=n/10, y=n%10)
새롭게 만들어진 값 (임시 저장 값) tmp = (y + (x+y+의 10으로 나눈 나머지 값))을 입력값 n과 같아질 때까지 반복
26을 예로 들면
26 (x=2, y=6)
-> 2+6 = 8
-> (x+y)
tmp = 68
-> (10*y + (x+y)%10)
= 6*10 + (8)%10 과 같다
이 과정을 4번 반복하면 기존 입력한 값인 26이 나옴
구현은
이러한 루틴을 통해서 입력받은 값 26과 중간 과정 값이 일치할 때까지 while문 조건에 넣어서 반복시켰다
예제 값인 26을 입력했을때, 처음에 횟수를 출력할 cnt가 3이 나와서 뭐지했는데
이미 앞에서 tmp를 더한걸 추가해주지않아서 1보다 작은값이 나옴 ㅎ
#include<bits/stdc++.h>
using namespace std;
//BOJ 1110
int main() {
int n = 0;
int cnt = 0;
cin >> n;
int x = n/10;
int y = n%10;
int tmp = y*10+(x+y)%10;
cnt++;
while(tmp!= n){
x = tmp/10;
y = tmp%10;
tmp = y*10+(x+y)%10;
cnt++;
}
cout<<cnt;
return 0;
}
출처 : www.acmicpc.net/problem/1110
반응형
'문제풀기' 카테고리의 다른 글
[백준/BOJ] 구현 11399번 문제, ATM C++ 풀이 (0) | 2021.03.21 |
---|---|
[백준/BOJ] 구현 2562번 문제, 최댓값 C++ 풀이 (0) | 2021.03.17 |
[백준/BOJ] 구현 8958번 문제, OX퀴즈 C++ 풀이 (0) | 2021.03.14 |
[백준/BOJ] 구현 2577번 문제, 숫자의 개수 C++ 풀이 (0) | 2021.03.12 |
[백준/BOJ] 구현 2588번 문제, 곱셈 C++ 풀이 (0) | 2021.03.10 |
[백준/BOJ] 구현 2753번 문제, 윤년 C++ 풀이 (0) | 2021.03.10 |