Рубрики

Минимальная сумма двух чисел, образованных из цифр массива

Для заданного массива цифр (значения от 0 до 9) найдите минимально возможную сумму двух чисел, образованных из цифр массива. Все цифры данного массива должны быть использованы для формирования двух чисел.
Примеры :

Input: [6, 8, 4, 5, 2, 3]
Output: 604
The minimum sum is formed by numbers 
358 and 246

Input: [5, 3, 0, 7, 4]
Output: 82
The minimum sum is formed by numbers 
35 and 047 

Минимальное число будет сформировано из набора цифр, когда наименьшая цифра появляется в наиболее значимой позиции, а следующая наименьшая цифра появляется в следующей наиболее значимой позиции и т. Д.

Идея состоит в том, чтобы отсортировать массив в порядке возрастания и построить два числа, чередуя выбор цифр из массива. Таким образом, первое число формируется из цифр, присутствующих в нечетных позициях в массиве, а второе число формируется из цифр из четных позиций в массиве. Наконец, мы возвращаем сумму первого и второго числа.

Ниже приведена реализация вышеуказанной идеи.

C / C ++

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

using namespace std;

  
// Функция для поиска и возврата минимальной суммы
// два числа, образованные из цифр массива.

int solve(int arr[], int n)

{

    // сортируем массив

    sort(arr, arr + n);

  

    // пусть два числа будут a и b

    int a = 0, b = 0;

    for (int i = 0; i < n; i++)

    {

        // заполняем a и b каждой альтернативной цифрой

        // входного массива

        if (i & 1)

            a = a*10 + arr[i];

        else

            b = b*10 + arr[i];

    }

  

    // вернуть сумму

    return a + b;

}

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

int main()

{

    int arr[] = {6, 8, 4, 5, 2, 3};

    int n = sizeof(arr)/sizeof(arr[0]);

    cout << "Sum is " << solve(arr, n);

    return 0;

}

Джава

// Java программа для поиска минимальной суммы двух чисел
// формируется из цифр массива.

import java.util.Arrays;

  

class GFG {

      

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

    // два числа, образованные из цифр массива.

    static int solve(int arr[], int n)

    {

          

        // сортируем массив

        Arrays.sort(arr);

      

        // пусть два числа будут a и b

        int a = 0, b = 0;

        for (int i = 0; i < n; i++)

        {

              

            // заполняем a и b каждым заместителем

            // цифра входного массива

            if (i % 2 != 0)

                a = a * 10 + arr[i];

            else

                b = b * 10 + arr[i];

        }

      

        // вернуть сумму

        return a + b;

    }

      

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

    public static void main (String[] args)

    {

        int arr[] = {6, 8, 4, 5, 2, 3};

        int n = arr.length;

          

        System.out.print("Sum is " 

                          + solve(arr, n));

    }

}

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

python3

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

  
# Функция для поиска и возврата минимальной суммы
# два числа, образованные из цифр массива.

def solve(arr, n):

  

    # сортировать массив

    arr.sort()

  

    # пусть два числа будут a и b

    a = 0; b = 0

    for i in range(n):

      

        # Заполните a и b каждым заместителем

        # цифра входного массива

        if (i % 2 != 0):

            a = a * 10 + arr[i]

        else:

            b = b * 10 + arr[i]

  

    # вернуть сумму

    return a + b

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

arr = [6, 8, 4, 5, 2, 3]

n = len(arr)

print("Sum is ", solve(arr, n))

  
# Этот код предоставлен Anant Agarwal.

C #

// C # программа для поиска минимума
// сумма двух чисел
// из цифр массива.

using System;

  

class GFG

{

    // Функция для поиска и возврата

    // минимальная сумма двух чисел

    // формируется из цифр массива.

    static int solve(int []arr, int n)

    {

        // сортируем массив

        Array.Sort(arr);

       

        // пусть два числа будут a и b

        int a = 0, b = 0;

        for (int i = 0; i < n; i++)

        {

            // заполняем a и b каждой альтернативной цифрой

            // входного массива

            if (i % 2 != 0)

                a = a * 10 + arr[i];

            else

                b = b * 10 + arr[i];

        }

       

        // вернуть сумму

        return a + b;

    }

      

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

    public static void Main ()

    {

        int []arr = {6, 8, 4, 5, 2, 3};

        int n = arr.Length;

        Console.WriteLine("Sum is " + solve(arr, n));

    }

}

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

PHP

<?php
// PHP программа для поиска минимума
// сумма двух чисел
// из цифр массива.

  
// Функция для поиска и возврата
// минимальная сумма двух чисел
// формируется из цифр массива.

function solve($arr, $n)

{

    // сортируем массив

    sort($arr); sort($arr , $n);

  

    // пусть два числа будут a и b

    $a = 0; $b = 0;

    for ($i = 0; $i < $n; $i++)

    {

        // заполняем a и b каждым

        // альтернативная цифра входного массива

        if ($i & 1)

            $a = $a * 10 + $arr[$i];

        else

            $b = $b * 10 + $arr[$i];

    }

  

    // вернуть сумму

    return $a + $b;

}

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

$arr = array(6, 8, 4, 5, 2, 3);

$n = sizeof($arr);

echo "Sum is " , solve($arr, $n);

      
// Этот код предоставлен нитин митталь.
?>


Выход :

Sum is 604

Эта статья предоставлена Aditya Goel . Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью и отправить ее по почте на contrib@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

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

Минимальная сумма двух чисел, образованных из цифр массива

0.00 (0%) 0 votes