给定数字 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