# 12943 콜라츠 추측
문제 정리
짝수 -> 2로나눔, 홀수 -> 3곱하고 1더함
결과가 1이 될 때까지 반복해야 함! 이 반복의 횟수를 구하면 됨.
(만약에 작업을 500번 반복했는데도 1이 아니면 -1을 반환)
생각해보기
횟수 변수를 하나 만들어서 계속 while문으로 반복해보고 탈출문을 설정해주면 될듯.
탈출 조건 = 결과가 1일 때, 횟수가 500일 때
아니면 while문의 조건이 횟수가 500 이하일때만으로!!
코드 쓰기
문제가 이상한 듯..
내 풀이
#include <string>
#include <vector>
using namespace std;
int solution(int num) {
int answer = 0;
while(answer <= 483){
if (num == 1){
break;
}
if (num % 2 == 0){
num /= 2;
} else {
num = num * 3 + 1;
}
answer++;
}
if(answer >= 483){
return -1;
}
return answer;
}
풀고 나서 알게된 것
-