이번에도 제한 사항을 꼼꼼히 읽어야함.
제한 사항
입력된 수, num은 1 이상 8000000 미만인 정수입니다.
콜라츠 추측.cpp
#include <string>
#include <vector>
using namespace std;
int solution(int num) {
int answer = 0;
long number = num;
while(answer < 500) {
if(number == 1)
return answer;
else {
if(number % 2 == 0) {
number /= 2;
}
else {
number = number * 3 + 1;
}
answer++;
}
}
return -1;
}
while문 500 이하로 돌리면서,
1. number이 1이 아닐때
1-1. number가 짝수이면 2로 나누고
1-2. 홀수라면 3을 곱하고 1을 더한다.
위 else 문이 돌아갈 때는 1-3. answer 값을 1씩 올려준다.
(answer++)
2. 그러다 number가 1이 되면 리턴
을 해주고, 3. 횟수가 500번이 넘어가면 while문을 빠져나와 리턴 -1
을 해주는데,
제한 사항이 있기 때문에 int 형 num을 long 형 number 변수에 담아 진행해준 것이다. 끗