Рубрики

Найти, является ли данное число степенью 4 или нет

По заданному целому числу n определите, является ли оно степенью 4 или нет.

Пример :

Input : 16
Output : 16 is a power of 4

Input : 20
Output : 20 is not a power of 4

Мы настоятельно рекомендуем вам нажать здесь и попрактиковаться, прежде чем переходить к решению.

1. Простой способ — взять журнал заданного числа на основе 4, и если мы получим целое число, то число будет степенью 4.

2. Другое решение состоит в том, чтобы продолжать делить число на 4, т.е. делать n = n / 4 итеративно. На любой итерации, если n% 4 становится ненулевым и n не равно 1, то n не является степенью 4, в противном случае n является степенью 4.

C ++

// C ++ программа, чтобы найти ли данный
// число является степенью 4 или нет
#include<iostream>

  

using namespace std;

#define bool int

  

class GFG

{

      
/ * Функция, чтобы проверить, является ли x степенью 4 * /

public : bool isPowerOfFour(int n)

{

    if(n == 0)

        return 0;

    while(n != 1)

    

        if(n % 4 != 0)

            return 0;

        n = n / 4; 

    }

    return 1;

}
};

  
/ * Код водителя * /

int main()

{

    GFG g;

    int test_no = 64;

    if(g.isPowerOfFour(test_no))

        cout << test_no << " is a power of 4";

    else

        cout << test_no << "is not a power of 4";

    getchar();

}

  
// Этот код предоставлен SoM15242

С

#include<stdio.h>
#define bool int

  
/ * Функция, чтобы проверить, является ли x степенью 4 * /

bool isPowerOfFour(int n)

{

  if(n == 0)

    return 0;

  while(n != 1)

  {    

   if(n % 4 != 0)

      return 0;

    n = n / 4;      

  }

  return 1;

  
/ * Программа драйвера для проверки вышеуказанной функции * /

int main()

{

  int test_no = 64;

  if(isPowerOfFour(test_no))

    printf("%d is a power of 4", test_no);

  else

    printf("%d is not a power of 4", test_no);

  getchar();

}

Джава

// Java-код для проверки, если дан
// число является степенью 4 или нет

  

class GFG {

  

    // Функция для проверки

    // х - степень 4

    static int isPowerOfFour(int n)

    {

        if(n == 0)

        return 0;

        while(n != 1)

        

            if(n % 4 != 0)

            return 0;

            n = n / 4;     

        }

        return 1;

    

  

    // Драйвер программы

    public static void main(String[] args)

    {

        int test_no = 64;

        if(isPowerOfFour(test_no) == 1)

         System.out.println(test_no + 

                           " is a power of 4");

        else

         System.out.println(test_no + 

                           "is not a power of 4");

    }

}

  
// Этот код добавлен
// Прерна Сайни

python3

# Python3 программа для проверки, если дано
число является степенью 4 или нет

  
# Функция, чтобы проверить, является ли x степенью 4

def isPowerOfFour(n):

    if (n == 0):

        return False

    while (n != 1):

            if (n % 4 != 0):

                return False

            n = n // 4

              

    return True

  
# Код драйвера

test_no = 64

if(isPowerOfFour(64)):

    print(test_no, 'is a power of 4')

else:

    print(test_no, 'is not a power of 4')

  
# Этот код предоставлен Danish Raza

C #

// код C # для проверки, если дан
// число является степенью 4 или нет

using System;

  

class GFG {

      

    // Функция для проверки

    // х - степень 4

    static int isPowerOfFour(int n)

    {

        if (n == 0)

            return 0;

        while (n != 1) {

            if (n % 4 != 0)

                return 0;

            n = n / 4;

        }

        return 1;

    }

  

    // Код драйвера

    public static void Main()

    {

        int test_no = 64;

        if (isPowerOfFour(test_no) == 1)

            Console.Write(test_no + 

                    " is a power of 4");

        else

            Console.Write(test_no + 

                " is not a power of 4");

    }

}

  
// Этот код предоставлен Sam007

PHP

<?php
// PHP-код для проверки, если дан
// число является степенью 4 или нет

  
// Функция для проверки
// х - степень 4

function isPowerOfFour($n

{

      

    if($n == 0)

        return 0;

    while($n != 1)

    

        if($n % 4 != 0)

            return 0;

            $n = $n / 4;     

    }

    return 1;

  
// Код драйвера

$test_no = 64;

  

if(isPowerOfFour($test_no))

    echo $test_no," is a power of 4";

else

    echo $test_no," is not a power of 4";

  
// Этот код предоставлен Раджешем
?>


Выход :

64 is a power of 4

3. Число n является степенью 4, если выполняются следующие условия.
а) В двоичном представлении n задан только один бит (или n является степенью 2)
б) Количество нулевых битов до (только) установленного бита является четным.

Например: 16 (10000) — это степень 4, потому что установлен только один бит, и счетчик равен 0 с, прежде чем установленный бит равен 4, что является четным.

Спасибо Geek4u за предложение подхода и предоставление кода.

C ++

// C ++ программа для проверки
// если заданное число
// сила 4 или нет
#include<bits/stdc++.h>

  

using namespace std;

  

bool isPowerOfFour(unsigned int n)

{

    int count = 0;

  

    / * Проверить, установлен ли только один бит в n * /

    if ( n && !(n&(n-1)) )

    {

        / * считать 0 бит до установленного бита * /

        while(n > 1)

        {

            n >>= 1;

            count += 1;

        

  

        / * Если счет даже тогда

        вернуть true, иначе false * /

        return (count%2 == 0)? 1 :0;

    }

  

    / * Если установлено более 1 бита

    тогда n не является степенью 4 * /

    return 0;

  
/ * Код водителя * /

int main()

{

    int test_no = 64;

    if(isPowerOfFour(test_no))

        cout << test_no << " is a power of 4" ;

    else

        cout << test_no << " is not a power of 4";

}

  
// Этот код предоставлен Shivi_Aggarwal

С

#include<stdio.h>
#define bool int

  

bool isPowerOfFour(unsigned int n)

{

  int count = 0;

  

  / * Проверить, установлен ли только один бит в n * /

  if ( n && !(n&(n-1)) )

  {

     / * считать 0 бит до установленного бита * /

     while(n > 1)

     {

       n  >>= 1;

       count += 1;

     }      

  

    / * Если число четное, вернуть true, иначе false * /

    return (count%2 == 0)? 1 :0;

  }

  

  / * Если установлено более 1 бита

    тогда n не является степенью 4 * /

  return 0;

}    

  
/ * Программа драйвера для проверки вышеуказанной функции * /

int main()

{

   int test_no = 64;

   if(isPowerOfFour(test_no))

     printf("%d is a power of 4", test_no);

   else

     printf("%d is not a power of 4", test_no);

   getchar();

}

Джава

// Java-программа для проверки
// если заданное число
// сила 4 или нет

import java.io.*;

class GFG 

{

    static int isPowerOfFour(int n)

    {

        int count = 0;

          

        / * Проверьте, есть ли

        только один бит установлен в n * /

        int x = n & (n - 1);

          

        if ( n > 0 && x == 0)

        {

            / * считать 0 бит

            перед установленным битом * /

            while(n > 1)

            {

                n >>= 1;

                count += 1;

            

          

            / * Если счет четный

            затем верните истину

            иначе ложь * /

            return (count % 2 == 0) ? 1 : 0;

        }

          

            / * Если их больше

            1 бит установлен, тогда n не является

            мощность 4 * /

        return 0;

    

  

    // Код драйвера

    public static void main(String[] args)

    {

        int test_no = 64;

          

        if(isPowerOfFour(test_no)>0)

            System.out.println(test_no +

                               " is a power of 4");

        else

            System.out.println(test_no +

                               " is not a power of 4");

    }

}

  
// Этот код предоставлен mits

python3

# Python3 программа для проверки, если дано
число является степенью 4 или нет

  
# Функция, чтобы проверить, является ли x степенью 4

def isPowerOfFour(n):

      

    count = 0

      

    # Проверьте, есть ли только один

    # бит установлен в n

    if (n and (not(n & (n - 1)))):

          

        # считать 0 бит до установленного бита

        while(n > 1):

            n >>= 1

            count += 1

          

        # Если число четное, то вернуть

        # правда иначе ложь

        if(count % 2 == 0):

            return True

        else:

            return False

  
# Код драйвера

test_no = 64

if(isPowerOfFour(64)):

    print(test_no, 'is a power of 4')

else:

    print(test_no, 'is not a power of 4')

  
# Этот код предоставлен датской разой

C #

// C # программа для проверки, если дано
// число является степенью 4 или нет

using System;

  

class GFG {

      

    static int isPowerOfFour(int n)

    {

        int count = 0;

          

        / * Проверить, есть ли только один бит

        установить в n * /

        int x = n & (n-1);

          

        if ( n > 0 && x == 0)

        {

            / * считать 0 бит до установленного бита * /

            while(n > 1)

            {

                n >>= 1;

                count += 1;

            

          

            / * Если число четное, вернемся

            правда иначе ложь * /

            return (count % 2 == 0) ? 1 : 0;

        }

          

            / * Если установлено более 1 бита

            тогда n не является степенью 4 * /

        return 0;

    

  

    / * Программа драйвера для проверки вышеуказанной функции * /

    static void Main()

    {

        int test_no = 64;

          

        if(isPowerOfFour(test_no)>0)

            Console.WriteLine("{0} is a power of 4",

                                          test_no);

        else

            Console.WriteLine("{0} is not a power of 4",

                                             test_no);

    }

}

  
// Этот код предоставлен mits

PHP

<?php

  

function isPowerOfFour($n)

{

    $count = 0;

  
/ * Проверить, установлен ли только один бит в n * /

if ( $n && !($n&($n-1)) )

{

    / * считать 0 бит до установленного бита * /

    while($n > 1)

    {

    $n >>= 1;

    $count += 1;

    }     

  

    / * Если число четное, вернуть true, иначе false * /

    return ($count%2 == 0)? 1 :0;

}

  
/ * Если установлено более 1 бита

    тогда n не является степенью 4 * /

return 0;

  
/ * Программа драйвера для проверки вышеуказанной функции * /

  

    $test_no = 64;

      

if(isPowerOfFour($test_no))

  

    echo $test_no, " is a power of 4";

  
else

  

    echo $test_no, " not is a power of 4";

      

  
#This Code is Contributed by Ajit
?>


Выход:

64 is a power of 4

4. Число n является степенью 4, если выполняются следующие условия.
а) В двоичном представлении n задан только один бит (или n является степенью 2)
б) Биты не И (&) ни одной части шаблона 0xAAAAAAAA

Например: 16 (10000) — это степень 4, потому что установлен только один бит, а 0x10 и 0xAAAAAAAA равны нулю.

Спасибо Сартаку Саху за предложенный подход.

C ++

// C ++ программа для проверки
// если заданное число
// сила 4 или нет
#include<bits/stdc++.h>

  

using namespace std;

  

bool isPowerOfFour(unsigned int n)

{

    return n !=0 && ((n&(n-1)) == 0) && !(n & 0xAAAAAAAA);

  
/ * Код водителя * /

int main()

{

    int test_no = 64;

    if(isPowerOfFour(test_no))

        cout << test_no << " is a power of 4" ;

    else

        cout << test_no << " is not a power of 4";

}

С

// C программа для проверки
// если заданное число
// сила 4 или нет
#include<stdio.h>
#define bool int

  

bool isPowerOfFour(unsigned int n)

{

  return n != 0 && ((n&(n-1)) == 0) && !(n & 0xAAAAAAAA);

}    

  
/ * Программа драйвера для проверки вышеуказанной функции * /

int main() {

   int test_no = 64;

   if(isPowerOfFour(test_no))

     printf("%d is a power of 4", test_no);

   else

     printf("%d is not a power of 4", test_no);

   getchar();

}

Джава

// Java-программа для проверки
// если заданное число
// сила 4 или нет

import java.io.*;

class GFG {

    static boolean isPowerOfFour(int n) {

        return n != 0 && ((n&(n-1)) == 0) && (n & 0xAAAAAAAA) == 0;

    

  

    // Код драйвера

    public static void main(String[] args) {

        int test_no = 64;

          

        if(isPowerOfFour(test_no))

            System.out.println(test_no +

                               " is a power of 4");

        else

            System.out.println(test_no +

                               " is not a power of 4");

    }

}

python3

# Python3 программа для проверки
# если задано число
# сила 4 или нет

def isPowerOfFour(n):

    return (n != 0 and 

          ((n & (n - 1)) == 0) and 

            not(n & 0xAAAAAAAA));

  
# Код драйвера

test_no = 64;

if(isPowerOfFour(test_no)):

    print(test_no ,"is a power of 4");

else:

    print(test_no , "is not a power of 4");

  
# Этот код предоставлен Rajput-Ji

C #

// C # программа для проверки
// если заданное число
// сила 4 или нет

using System;

  

class GFG

{

    static bool isPowerOfFour(int n)

    {

        return n != 0 && ((n&(n-1)) == 0) &&

                        (n & 0xAAAAAAAA) == 0;

    

  

    // Код драйвера

    static void Main()

    {

        int test_no = 64;

          

        if(isPowerOfFour(test_no))

            Console.WriteLine("{0} is a power of 4",

                                        test_no);

        else

            Console.WriteLine("{0} is not a power of 4",

                                            test_no);

    }

}

  
// Этот код предоставлен Мохит Кумар 29


Выход:

64 is a power of 4

Почему 0xAAAAAAAA? Это потому, что битовое представление имеет степени 2, а не 4. Как 2, 8, 32 и т. Д.
Пожалуйста, пишите комментарии, если вы обнаружите, что какой-либо из приведенных выше кодов / алгоритмов неверен, или найдете другие способы решения той же проблемы.

Рекомендуемые посты:

Найти, является ли данное число степенью 4 или нет

0.00 (0%) 0 votes