Check whether a number has consecutive 0’s in the given base or not

python tutorials and learn python

Check whether a number has consecutive 0’s in the given base or not

Given a decimal number N, the task is to check if a number has consecutive zeroes or not after converting the number to its K-based notation.

Examples:

Input: N = 4, K = 2
Output: No
4 in base 2 is 100, As there are consecutive 2 thus the answer is No.

Input: N = 15, K = 8
Output: Yes
15 in base 8 is 17, As there are no consecutive 0 so the answer is Yes.

Approach: First convert the number N into base K and then simply check if the number has consecutive zeroes or not.

Below is the implementation of the above approach:

C++

 // C++ implementation of the above approach #include using namespace std;    // Function to convert N into base K int toK(int N, int K) {  // Weight of each digit     int w = 1;     int s = 0;     while (N != 0)      {         int r = N % K;         N = N/K;         s = r * w + s;         w *= 10;      }     return s;  }  // Function to check for consecutive 0 bool check(int N) {  // Flag to check if there are consecutive      // zero or not     bool fl = false;     while (N != 0)     {          int r = N % 10;         N = N/10;          // If there are two consecutive zero          // then returning False         if (fl == true and r == 0)             return false;         if (r > 0)             {             fl = false;             continue;             }         fl = true;      }      return true;          }  // We first convert to given base, then // check if the converted number has two // consecutive 0s or not void hasConsecutiveZeroes(int N, int K) {     int z = toK(N, K);     if (check(z))        cout<<"Yes"<
Output:

Yes