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

📅  最后修改于: 2021-04-23 19:53:48             🧑  作者: 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 requied 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 requied 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 requied 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 requied 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


输出:
468