Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để triển khai Collatz Conjecture

Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để triển khai Collatz Conjecture.

Đối với điều này, chúng tôi sẽ được cung cấp với một số n và chúng tôi phải tìm hiểu xem nó có thể được chuyển đổi thành 1 bằng cách sử dụng hai phép toán hay không -

  • Nếu n chẵn, n được chuyển thành n / 2.

  • Nếu n lẻ, n được chuyển thành 3 * n + 1.

Ví dụ

#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;
}

Đầu ra

Yes