📌  相关文章
📜  给定数字 1、2、3、4 的数量,找到可能的最大和

📅  最后修改于: 2021-10-26 05:50:10             🧑  作者: Mango

给定数字 1、2、3、4 的数量。使用这些数字,您只能组成数字 234 和 12。任务是找到组成数字后可以获得的最大可能和。

注意:目的只是为了最大化总和,即使某些数字未使用。

例子:

Input : c1 = 5, c2 = 2, c3 = 3, c4 = 4
Output : 468
Explanation : We can form two 234s

Input : c1 = 5, c2 = 3, c3 = 1, c4 = 5
Output : 258
Explanation : We can form one 234 and two 12s

方法:一种有效的方法是首先尝试制作 234。 234 的可能数量是 c2、c3、c4 中的最小值。在此之后,剩余的 1 和 2 尝试形成 12。

下面是上述方法的实现:

C++
// CPP program to maximum possible sum
 
#include 
using namespace std;
 
// Function to find the maximum possible sum
int Maxsum(int c1, int c2, int c3, int c4)
{
    // To store required sum
    int sum = 0;
 
    // Number of 234's can be formed
    int two34 = min(c2, min(c3, c4));
 
    // Sum obtained with 234s
    sum = two34 * 234;
 
    // Remaining 2's
    c2 -= two34;
 
    // Sum obtained with 12s
    sum += min(c2, c1) * 12;
 
    // Return the required sum
    return sum;
}
 
// Driver code
int main()
{
    int c1 = 5, c2 = 2, c3 = 3, c4 = 4;
 
    cout << Maxsum(c1, c2, c3, c4);
 
    return 0;
}


Java
// Java program to maximum possible sum
class GFG
{
     
// Function to find the maximum possible sum
static int Maxsum(int c1, int c2, int c3, int c4)
{
    // To store required sum
    int sum = 0;
 
    // Number of 234's can be formed
    int two34 = Math.min(c2,Math.min(c3, c4));
 
    // Sum obtained with 234s
    sum = two34 * 234;
 
    // Remaining 2's
    c2 -= two34;
 
    // Sum obtained with 12s
    sum +=Math.min(c2, c1) * 12;
 
    // Return the required sum
    return sum;
}
 
// Driver code
public static void main(String[] args)
{
    int c1 = 5, c2 = 2, c3 = 3, c4 = 4;
 
    System.out.println(Maxsum(c1, c2, c3, c4));
}
}
 
// This code is contributed by Code_Mech.


Python3
# Python3 program to maximum possible sum
 
# Function to find the maximum
# possible sum
def Maxsum(c1, c2, c3, c4):
 
    # To store required sum
    sum = 0
 
    # Number of 234's can be formed
    two34 = min(c2, min(c3, c4))
 
    # Sum obtained with 234s
    sum = two34 * 234
 
    # Remaining 2's
    c2 -= two34
    sum += min(c2, c1) * 12
 
    # Return the required sum
    return sum
 
# Driver Code
c1 = 5; c2 = 2; c3 = 3; c4 = 4
print(Maxsum(c1, c2, c3, c4))
 
# This code is contributed by Shrikant13


C#
// C# program to maximum possible sum
using System;
 
class GFG
{
     
// Function to find the maximum possible sum
static int Maxsum(int c1, int c2, int c3, int c4)
{
    // To store required sum
    int sum = 0;
 
    // Number of 234's can be formed
    int two34 = Math.Min(c2, Math.Min(c3, c4));
 
    // Sum obtained with 234s
    sum = two34 * 234;
 
    // Remaining 2's
    c2 -= two34;
 
    // Sum obtained with 12s
    sum +=Math.Min(c2, c1) * 12;
 
    // Return the required sum
    return sum;
}
 
// Driver code
public static void Main()
{
    int c1 = 5, c2 = 2, c3 = 3, c4 = 4;
 
    Console.WriteLine(Maxsum(c1, c2, c3, c4));
}
}
 
// This code is contributed
// by Akanksha Rai


PHP


Javascript


输出:
468