wingman007 icon

MIITITMOM2023Solutions

wingman007 | PRO | 10/30/23 11:08:15 AM UTC | 0 ⭐ | 1168 👁️ | Never ⏰ | []
C# |

5.65 KB

|

None

|

0 👍

/

0 👎

// ----------------------------------------------- all combinations 0 ------------------------------
// I have 5 integer numbers with positive and negative values. Please write a program on C# to find all combinations between the 5 numbers which are 0?
using System;
using System.Collections.Generic;
 
public class ZeroSumCombinations
{
    public static void Main()
    {
        int[] numbers = { 2, -2, 3, -3, 4 }; // Example input
 
        // Pairs
        for (int i = 0; i < 5; i++)
        {
            for (int j = i + 1; j < 5; j++)
            {
                if (numbers[i] + numbers[j] == 0)
                {
                    Console.WriteLine($"Pair: {numbers[i]}, {numbers[j]}");
                }
            }
        }
 
        // Triples
        for (int i = 0; i < 5; i++)
        {
            for (int j = i + 1; j < 5; j++)
            {
                for (int k = j + 1; k < 5; k++)
                {
                    if (numbers[i] + numbers[j] + numbers[k] == 0)
                    {
                        Console.WriteLine($"Triple: {numbers[i]}, {numbers[j]}, {numbers[k]}");
                    }
                }
            }
        }
 
        // Quadruples
        for (int i = 0; i < 5; i++)
        {
            for (int j = i + 1; j < 5; j++)
            {
                for (int k = j + 1; k < 5; k++)
                {
                    for (int l = k + 1; l < 5; l++)
                    {
                        if (numbers[i] + numbers[j] + numbers[k] + numbers[l] == 0)
                        {
                            Console.WriteLine($"Quadruple: {numbers[i]}, {numbers[j]}, {numbers[k]}, {numbers[l]}");
                        }
                    }
                }
            }
        }
 
        // Quintuples
        if (numbers[0] + numbers[1] + numbers[2] + numbers[3] + numbers[4] == 0)
        {
            Console.WriteLine($"Quintuple: {numbers[0]}, {numbers[1]}, {numbers[2]}, {numbers[3]}, {numbers[4]}");
        }
    }
}
 
// ----------------------------- Above without arrays ------------------------
using System;
 
public class ZeroSumCombinations
{
    public static void Main()
    {
        int a = 2, b = -2, c = 3, d = -3, e = 4; // Example input
 
        // Pairs
        if (a + b == 0) Console.WriteLine($"Pair: {a}, {b}");
        if (a + c == 0) Console.WriteLine($"Pair: {a}, {c}");
        if (a + d == 0) Console.WriteLine($"Pair: {a}, {d}");
        if (a + e == 0) Console.WriteLine($"Pair: {a}, {e}");
        if (b + c == 0) Console.WriteLine($"Pair: {b}, {c}");
        if (b + d == 0) Console.WriteLine($"Pair: {b}, {d}");
        if (b + e == 0) Console.WriteLine($"Pair: {b}, {e}");
        if (c + d == 0) Console.WriteLine($"Pair: {c}, {d}");
        if (c + e == 0) Console.WriteLine($"Pair: {c}, {e}");
        if (d + e == 0) Console.WriteLine($"Pair: {d}, {e}");
 
        // Triples
        if (a + b + c == 0) Console.WriteLine($"Triple: {a}, {b}, {c}");
        if (a + b + d == 0) Console.WriteLine($"Triple: {a}, {b}, {d}");
        if (a + b + e == 0) Console.WriteLine($"Triple: {a}, {b}, {e}");
        if (a + c + d == 0) Console.WriteLine($"Triple: {a}, {c}, {d}");
        if (a + c + e == 0) Console.WriteLine($"Triple: {a}, {c}, {e}");
        if (a + d + e == 0) Console.WriteLine($"Triple: {a}, {d}, {e}");
        if (b + c + d == 0) Console.WriteLine($"Triple: {b}, {c}, {d}");
        if (b + c + e == 0) Console.WriteLine($"Triple: {b}, {c}, {e}");
        if (b + d + e == 0) Console.WriteLine($"Triple: {b}, {d}, {e}");
        if (c + d + e == 0) Console.WriteLine($"Triple: {c}, {d}, {e}");
 
        // Quadruples
        if (a + b + c + d == 0) Console.WriteLine($"Quadruple: {a}, {b}, {c}, {d}");
        if (a + b + c + e == 0) Console.WriteLine($"Quadruple: {a}, {b}, {c}, {e}");
        if (a + b + d + e == 0) Console.WriteLine($"Quadruple: {a}, {b}, {d}, {e}");
        if (a + c + d + e == 0) Console.WriteLine($"Quadruple: {a}, {c}, {d}, {e}");
        if (b + c + d + e == 0) Console.WriteLine($"Quadruple: {b}, {c}, {d}, {e}");
 
        // Quintuples
        if (a + b + c + d + e == 0) Console.WriteLine($"Quintuple: {a}, {b}, {c}, {d}, {e}");
    }
}
 
 
 
// You have 6 types of coins with values 1, 2, 5, 10, 20 and 50 cents. Write an algorithm on C# to find all combinations giving 100 cents (one dollar)
// -------------------------- Coins -------------------------------------------------
using System;
using System.Collections.Generic;
 
public class CoinCombinations
{
    private static readonly int[] Coins = 
        { 1, 2, 5, 10, 20, 50 };
    private static readonly List<List<int>> Combinations = 
        new List<List<int>>();
 
    public static void Main()
    {
        FindCombinations(new List<int>(), 100);
        foreach (var combination in Combinations)
        {
            Console.WriteLine(string.Join(" ", combination));
        }
    }
 
    public static void FindCombinations(List<int> currentCombination, int remaining)
    {
        if (remaining == 0)
        {
            Combinations.Add(new List<int>(currentCombination));
            return;
        }
 
        if (remaining < 0)
        {
            return;
        }
 
        for (int i = 0; i < Coins.Length; i++)
        {
            if (currentCombination.Count == 0 || Coins[i] >= currentCombination[currentCombination.Count - 1])
            {
                currentCombination.Add(Coins[i]);
                FindCombinations(currentCombination, remaining - Coins[i]);
                currentCombination.RemoveAt(currentCombination.Count - 1);
            }
        }
    }
}
 

Comments