Выберите пакеты от самых тяжелых до самых легких

#c# #package

Вопрос:

итак, у меня есть тестовая оценка, которую мне нужно выполнить, это один вопрос, с которым у меня возникли проблемы. Мне нужно, чтобы поднять тяжелый объект(наибольшее количество) и разместить их в порядке наложения (тяжело на дно, подсветка сверху) проблема, которую я имею что я не знаю, где начать, собственно, код, который я использую, — это C#, однако я знаю, что я должен использовать метод сортировки. поэтому моя главная проблема в том, что я пытаюсь выяснить, каков мой начальный шаг и как продвигаться дальше. Также я считаю, что это может быть в играх codin, но пока нигде не нашел его, если кто-нибудь сможет найти его название, это также будет очень полезно.

Вопрос
код по умолчанию
визуальный

Ответ №1:

Я думаю, что в этом случае вызов Sort является излишним, так как он используется на IEnumerable s, которых у вас нет и которые вам нужно создать.

Я думаю, что было бы проще просто использовать эту страницу, чтобы учиться у: https://www.tutorialspoint.com/Chash-program-to-find-the-maximum-of-three-numbers

Похоже, что сортировка в этом случае не поможет, так как вам нужно возвращать индекс веса, а не размер.

Вы можете попробовать создать словарь с индексом и весом и использовать linq, чтобы найти самый большой вес:

     public static int GetHeaviestWeightIndex(int weight1, int weight2, int weight3)
    {
        var weightToIndexMapping = new Dictionary<int, int> {{weight1, 0}, {weight2, 1}, {weight3, 2}};
        return weightToIndexMapping[weightToIndexMapping.Keys.Max()];
    }
 

Если вы настаиваете на использовании Sort , вы можете попробовать использовать SortedDictoinary как здесь: https://www.geeksforgeeks.org/sorteddictionary-class-in-c-sharp/

Ответ №2:

Без каких-либо распределений, коллекций и списков:

 using System;       

public class Program
{
    public static void Main(string[] args)
    {
        var a = 13;
        var b = 14;
        var c = 15;
        
        Console.WriteLine(Solve(a, b, c));      
    }
    
    public static int Solve(int weight0, int weight1, int weight2)
    {
        return weight0 > weight1
            ? weight0 > weight2
                ? 0 : 2
            : weight1 > weight2
                ? 1 : 2;
    }   
}
 

Имейте в виду, что он не проверяет наличие негативов.