목차
728x90
반응형
https://namu.wiki/w/%EC%BD%9C%EB%9D%BC%EC%B8%A0%20%EC%B6%94%EC%B8%A1
콜라츠 추측 - 나무위키
만약 이 추측이 거짓이라면, 1로 가지 않는 반례가 존재한다는 것을 의미한다. 수학자들은 이런 대표적인 반례에 대해서 자기 자신으로 순환하는 루프가 존재할 것으로 예상한다[10]. 예를들어
namu.wiki
주어진 수가 1이 될때까지 반복해서 작업을 한다.
1. 주어진수가 짝수면 2로 나눈다.
2. 주어진수가 홀수면 3을 곱하고 1을 더한다.
3. 결과로 나온수에 같은 작업(1번 or 2번)을 1이 될때까지 반복한다.
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(long num) {
if(num == 1) {
return 0;
}
for(int i = 0; i < 500; i++) {
if(num % 2 == 0) {
num /= 2;
}
else {
num = (num*3)+1;
}
printf("%d ", num);
if(num == 1) {
return i+1;
}
}
return -1;
}
조건 1. 주어진 수가 1이면 0을 리턴
조건 2. 500회 이상 시도해도 1이 나오지 않으면 -1을 리턴.
num = (num % 2 == 0) ? (num / 2) : (3 * num + 1);
가운데 if ~ else 문을 위 코드로 대체하면 간결해짐.
- 끝 -
728x90
반응형
'Programming language > 코딩테스트' 카테고리의 다른 글
코딩테스트 - 번호가리기, C언어 (0) | 2022.09.29 |
---|---|
코딩테스트 - 두 정수 사이의 합, C언어 (0) | 2022.09.29 |
코딩테스트-문자열을 정수로 바꾸기, C언어, itoa() (0) | 2022.09.29 |
코딩테스트 - 하샤드 수, C언어 (1) | 2022.09.29 |
코딩테스트 - 정수 제곱근 판별, C언어 (0) | 2022.09.29 |