Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

Collatz Conjecture를 구현하는 C++ 프로그램

<시간/>

이 튜토리얼에서는 Collatz Conjecture를 구현하는 프로그램에 대해 논의할 것입니다.

이를 위해 우리는 숫자 n이 주어질 것이고 우리는 그것이 두 가지 연산을 사용하여 1로 변환될 수 있는지 알아내야 합니다 -

  • n이 짝수이면 n은 n/2로 변환됩니다.

  • n이 홀수이면 n은 3*n + 1로 변환됩니다.

예시

#include<bits/stdc++.h>
using namespace std;
//checking if n reaches to 1 or not
bool check1(int n, unordered_set<int> &s){
   if (n == 1)
      return true;
   if (s.find(n) != s.end())
      return false;
   return (n % 2)? check1(3*n + 1, s) :
      check1(n/2, s);
}
bool if_one(int n){
   unordered_set<int> s;
   return check1(n, s);
}
int main(){
   int n = 234;
   if_one(n) ? cout << "Yes" : cout <<"No";
   return 0;
}

출력

Yes