# 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<bits/stdc++.h> ` `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"` `<<endl; ` ` ` `else` ` ` `cout<<` `"No"` `<<endl; ` `} ` ` ` ` ` ` ` `// Driver code ` `int` `main() ` `{ ` `int` `N = 15; ` `int` `K = 8; ` `hasConsecutiveZeroes(N, K); ` ` ` `} ` `// This code is contributed by ` `// Surendra_Gangwar ` |

*chevron_right*

*filter_none*

## Python3

`# Python implementation of the above approach ` ` ` `# We first convert to given base, then ` `# check if the converted number has two ` `# consecutive 0s or not ` `def` `hasConsecutiveZeroes(N, K): ` ` ` `z ` `=` `toK(N, K) ` ` ` `if` `(check(z)): ` ` ` `print` `(` `"Yes"` `) ` ` ` `else` `: ` ` ` `print` `(` `"No"` `) ` ` ` `# Function to convert N into base K ` `def` `toK(N, K): ` ` ` ` ` `# Weight of each digit ` ` ` `w ` `=` `1` ` ` `s ` `=` `0` ` ` `while` `(N !` `=` `0` `): ` ` ` `r ` `=` `N ` `%` `K ` ` ` `N ` `=` `N` `/` `/` `K ` ` ` `s ` `=` `r ` `*` `w ` `+` `s ` ` ` `w` `*` `=` `10` ` ` `return` `s ` ` ` `# Function to check for consecutive 0 ` `def` `check(N): ` ` ` ` ` `# Flag to check if there are consecutive ` ` ` `# zero or not ` ` ` `fl ` `=` `False` ` ` `while` `(N !` `=` `0` `): ` ` ` `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` ` ` `# Driver code ` `N, K ` `=` `15` `, ` `8` `hasConsecutiveZeroes(N, K) ` |

*chevron_right*

*filter_none*

## PHP

`<?php ` `// PHP implementation of the above approach ` ` ` `// We first convert to given base, ` `// then check if the converted number ` `// has two consecutive 0s or not ` `function` `hasConsecutiveZeroes(` `$N` `, ` `$K` `) ` `{ ` ` ` `$z` `= toK(` `$N` `, ` `$K` `); ` ` ` `if` `(check(` `$z` `)) ` ` ` `print` `(` `"Yes"` `); ` ` ` `else` ` ` `print` `(` `"No"` `); ` `} ` ` ` `// Function to convert N into base K ` `function` `toK(` `$N` `, ` `$K` `) ` `{ ` ` ` `// Weight of each digit ` ` ` `$w` `= 1; ` ` ` `$s` `= 0; ` ` ` `while` `(` `$N` `!= 0) ` ` ` `{ ` ` ` `$r` `= ` `$N` `% ` `$K` `; ` ` ` `$N` `= (int)(` `$N` `/ ` `$K` `); ` ` ` `$s` `= ` `$r` `* ` `$w` `+ ` `$s` `; ` ` ` `$w` `*= 10; ` ` ` `} ` ` ` `return` `$s` `; ` `} ` ` ` `// Function to check for consecutive 0 ` `function` `check(` `$N` `) ` `{ ` ` ` `// Flag to check if there are ` ` ` `// consecutive zero or not ` ` ` `$fl` `= false; ` ` ` `while` `(` `$N` `!= 0) ` ` ` `{ ` ` ` `$r` `= ` `$N` `% 10; ` ` ` `$N` `= (int)(` `$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; ` `} ` ` ` `// Driver code ` `$N` `= 15; ` `$K` `= 8; ` `hasConsecutiveZeroes(` `$N` `, ` `$K` `); ` ` ` `// This code is contributed by mits ` `?> ` |

*chevron_right*

*filter_none*

**Output:**

Yes

## Recommended Posts:

- Given a number N in decimal base, find number of its digits in any base (base b)
- Check if a number is in given base or not
- Check if a number N starts with 1 in b-base
- Check if a given number can be represented in given a no. of digits in any base
- Check if the number is even or odd whose digits and base (radix) is given
- Check if a number is power of k using base changing method
- Check if a number can be expressed as a sum of consecutive numbers
- Check if a number can be written as sum of three consecutive integers
- C++ program to find all numbers less than n, which are palindromic in base 10 and base 2.
- Pandigital number in a given base
- Complement of a number with any base b
- Number of trailing zeroes in base B representation of N!
- Convert a number into negative base representation
- Number System and base conversions | Digital Electronics
- Python | Check if list contains consecutive numbers

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.