Рубрики

Наименьшее из трех целых чисел без операторов сравнения

Напишите программу, чтобы найти наименьшее из трех целых чисел, без использования операторов сравнения.

Пусть 3 входных числа будут x, y и z.

Метод 1 (повторное вычитание)
Возьмите переменную счетчика c и инициализируйте ее с 0. В цикле многократно вычитайте x, y и z на 1 и увеличивайте c. Число, которое становится 0 первым, является наименьшим. После завершения цикла c будет содержать минимум 3.

C ++

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

using namespace std;

int smallest(int x, int y, int z)

{

    int c = 0;

    while (x && y && z) {

        x--;

        y--;

        z--;

        c++;

    }

    return c;

}

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

int main()

{

    int x = 12, y = 15, z = 5;

    cout << "Minimum of 3 numbers is "

         << smallest(x, y, z);

    return 0;

}

  
// Этот код добавлен
// Аканкша Рай

С

// C программа для поиска наименьшего
// из трех целых чисел без
// операторы сравнения
#include <stdio.h>

  

int smallest(int x, int y, int z)

{

    int c = 0;

    while (x && y && z) {

        x--;

        y--;

        z--;

        c++;

    }

    return c;

}

  

int main()

{

    int x = 12, y = 15, z = 5;

    printf("Minimum of 3 numbers is %d", smallest(x, y, z));

    return 0;

}

Джава

// Java-программа для поиска наименьшего
// из трех целых чисел без
// операторы сравнения

class GFG {

  

    static int smallest(int x, int y, int z)

    {

        int c = 0;

  

        while (x != 0 && y != 0 && z != 0) {

            x--;

            y--;

            z--;

            c++;

        }

  

        return c;

    }

  

    public static void main(String[] args)

    {

        int x = 12, y = 15, z = 5;

  

        System.out.printf("Minimum of 3"

                              + " numbers is %d",

                          smallest(x, y, z));

    }

}

  
// Этот код предоставлен Смитой Динеш Семвал.

python3

# Python3 программа для поиска самых маленьких
# из трех целых чисел без
# операторы сравнения

  

def smallest(x, y, z):

    c = 0

      

    while ( x and y and z ):

        x = x-1

        y = y-1

        z = z-1

        c = c + 1

  

    return c

  
Код водителя

x = 12

y = 15

z = 5

print("Minimum of 3 numbers is",

       smallest(x, y, z))

  
# Этот код предоставлен Аншикой Гоял

C #

// C # программа для поиска самого маленького из трех
// целые числа без операторов сравнения

using System;

  

class GFG {

    static int smallest(int x, int y, int z)

    {

        int c = 0;

  

        while (x != 0 && y != 0 && z != 0) {

            x--;

            y--;

            z--;

            c++;

        }

  

        return c;

    }

  

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

    public static void Main()

    {

        int x = 12, y = 15, z = 5;

  

        Console.Write("Minimum of 3"

                      + " numbers is " + smallest(x, y, z));

    }

}

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

PHP

<?php
// php программа для поиска наименьшего
// из трех целых чисел без
// операторы сравнения

function smallest($x, $y, $z)

{

    $c = 0;

    while ( $x && $y && $z )

    {

        $x--; $y--; $z--; $c++;

    }

      

    return $c;

}

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

$x = 12;

$y = 15;

$z = 5;

echo "Minimum of 3 numbers is ".

             smallest($x, $y, $z);

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


Выход:

Minimum of 3 numbers is 5

Этот метод не работает для отрицательных чисел. Метод 2 работает и для отрицательных чисел.

Способ 2 (использовать битовые операции)
Используйте метод 2 этого поста, чтобы найти минимум два числа (мы не можем использовать метод 1, так как метод 1 использует оператор сравнения). Если у нас есть функциональность, чтобы найти минимум 2 числа, мы можем использовать это, чтобы найти минимум 3 числа.

C ++

// C ++ реализация вышеуказанного подхода
#include <bits/stdc++.h>

using namespace std;

#define CHAR_BIT 8

  
/ * Функция, чтобы найти минимум х и у * /

int min(int x, int y)

{

    return y + ((x - y) & ((x - y) >> (sizeof(int) * CHAR_BIT - 1)));

}

  
/ * Функция для нахождения минимум 3 чисел x, y и z * /

int smallest(int x, int y, int z)

{

    return min(x, min(y, z));

}

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

int main()

{

    int x = 12, y = 15, z = 5;

    cout << "Minimum of 3 numbers is "  << smallest(x, y, z);

    return 0;

}

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

С

// C реализация вышеуказанного подхода
#include <stdio.h>
#define CHAR_BIT 8

  
/ * Функция, чтобы найти минимум х и у * /

int min(int x, int y)

{

    return y + ((x - y) & ((x - y) >> (sizeof(int) * CHAR_BIT - 1)));

}

  
/ * Функция для нахождения минимум 3 чисел x, y и z * /

int smallest(int x, int y, int z)

{

    return min(x, min(y, z));

}

  

int main()

{

    int x = 12, y = 15, z = 5;

    printf("Minimum of 3 numbers is %d", smallest(x, y, z));

    return 0;

}

Джава

// Java реализация вышеуказанного подхода

class GFG

{

      

static int CHAR_BIT = 8;

  
// Функция для нахождения минимума x и y

static int min(int x, int y)

{

    return y + ((x - y) & ((x - y) >> 

               ((Integer.SIZE/8) * CHAR_BIT - 1)));

}

  
// Функция для поиска минимум 3 чисел x, y и z

static int smallest(int x, int y, int z)

{

    return Math.min(x, Math.min(y, z));

}

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

public static void main (String[] args) 

{

    int x = 12, y = 15, z = 5;

    System.out.println("Minimum of 3 numbers is "

                                smallest(x, y, z));

}
}

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

python3

# Python3 реализация вышеуказанного подхода

CHAR_BIT = 8

  
# Функция, чтобы найти минимум х и у

def min(x, y):

    return y + ((x - y) & \

               ((x - y) >> (32 * CHAR_BIT - 1)))

  
# Функция поиска минимума
Количество из 3 чисел x, y и z

def smallest(x, y, z):

    return min(x, min(y, z))

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

x = 12

y = 15

z = 5

print("Minimum of 3 numbers is "

               smallest(x, y, z))

  
# Этот код добавлен
# Мохит Кумар

C #

// C # реализация вышеуказанного подхода

using System;

  

class GFG

{

      

static int CHAR_BIT=8;

  
/ * Функция, чтобы найти минимум х и у * /

static int min(int x, int y)

{

    return y + ((x - y) & ((x - y) >> (sizeof(int) * CHAR_BIT - 1)));

}

  
/ * Функция для нахождения минимум 3 чисел x, y и z * /

static int smallest(int x, int y, int z)

{

    return Math.Min(x, Math.Min(y, z));

}

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

static void Main()

{

    int x = 12, y = 15, z = 5;

    Console.WriteLine("Minimum of 3 numbers is "+smallest(x, y, z));

}
}

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


Выход:

Minimum of 3 numbers is 5

Метод 3 (Использование оператора деления)
Мы также можем использовать оператор деления, чтобы найти минимум двух чисел. Если значение (a / b) равно нулю, то b больше, чем a, иначе a больше. Спасибо Гопинатху и Виньешу за предложение этого метода.

C ++

#include <stdio.h>

  
// Использование оператора деления для поиска
// минимум три цифры

int smallest(int x, int y, int z)

{

    if (!(y / x)) // То же, что и "if (y <x)"

        return (!(y / z)) ? y : z;

    return (!(x / z)) ? x : z;

}

  

int main()

{

    int x = 78, y = 88, z = 68;

    printf("Minimum of 3 numbers is %d", smallest(x, y, z));

    return 0;

}

Джава

// Java-программа вышеуказанного подхода

class GfG {

  

    // Использование оператора деления для

    // найти минимум три числа

    static int smallest(int x, int y, int z)

    {

        if ((y / x) != 1) // То же, что и "if (y <x)"

            return ((y / z) != 1) ? y : z;

        return ((x / z) != 1) ? x : z;

    }

  

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

    public static void main(String[] args)

    {

        int x = 78, y = 88, z = 68;

        System.out.printf("Minimum of 3 numbers"

                              + " is %d",

                          smallest(x, y, z));

    }

}

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

python3

# Использование оператора деления для поиска
# минимум три цифры

def smallest(x, y, z):

  

    if (not (y / x)): # То же, что "if (y <x)"

        return y if (not (y / z)) else z

    return x if (not (x / z)) else z

  
Код водителя

if __name__== "__main__":

  

    x = 78

    y = 88

    z = 68

    print("Minimum of 3 numbers is",

                  smallest(x, y, z))

  
# Этот код добавлен
# by ChitraNayal

C #

// C # программа вышеуказанного подхода

using System;

public class GfG {

  

    // Использование оператора деления для

    // найти минимум три числа

    static int smallest(int x, int y, int z)

    {

        if ((y / x) != 1) // То же, что и "if (y <x)"

            return ((y / z) != 1) ? y : z;

        return ((x / z) != 1) ? x : z;

    }

  

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

    public static void Main()

    {

        int x = 78, y = 88, z = 68;

        Console.Write("Minimum of 3 numbers"

                          + " is {0}",

                      smallest(x, y, z));

    }

}
/ * Этот код предоставлен PrinciRaj1992 * /


Выход:

Minimum of 3 numbers is 68

Пожалуйста, напишите комментарии, если вы обнаружите, что приведенные выше коды / алгоритмы неверны, или найдете другие способы решения той же проблемы.

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

Наименьшее из трех целых чисел без операторов сравнения

0.00 (0%) 0 votes