콜라츠 추측이란 주어진 수 n이 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다.
1-1. 입력된 수가 짝수라면 2로 나눕니다.
1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다.
2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다.
위 작업을 몇 번 반복해야 1이 나오는지 Console 창에 출력하는 코드를 만들어보세요.
단, 100번을 반복해도 1이 되지 않는다면 -1을 출력해 주세요.
예) n = 6 이라면 3 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1 로 8번 반복합니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Collatz : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
int n = 6;
int answer = 0;
// 1이 될 때까지 반복한다.
for (int i = 0; i < 100; i++)
{
if (n == 1)
{
answer = i;
break;
}
// 입력된 수가 짝수라면 2로 나눈다.
if (n % 2 == 0)
{
n /= 2;
}
// 입력된 수가 홀수라면 3을 곱하고 1을 더한다.
else
{
n = n * 3 + 1;
}
// 100번 반복해도 1이 되지 않는다면 -1 출력.
if (i == 99)
{
answer = -1;
}
}
print(answer);
}
// Update is called once per frame
void Update()
{
}
}
'공부 > Unity 기초' 카테고리의 다른 글
문자열 나누기 (0) | 2022.05.13 |
---|---|
영단어 숫자 바꾸기 (0) | 2022.05.12 |
제곱근 판별 (0) | 2022.05.12 |
두 자연수 사이의 합 구하기 (0) | 2022.05.12 |
약수의 합 (0) | 2022.05.12 |