Loading...
AnzhelaNurieva avatar AnzhelaNurieva 4 Точки

03. Numbers Fundamentals-Mid Exam-5 July 2020

80/100 ми дава Judge 

линк към решението =>  https://pastebin.com/Mids17C2

линк към условието => https://judge.softuni.bg/Contests/Practice/Index/2474#2

Нямам представа, защо и къде би могла да бъде грешката, всичко излиза на изхода...?

Моля, ако може някой да погледне :)

Тагове:
0
Fundamentals Module 26/10/2020 18:40:47
Axiomatik avatar Axiomatik 2422 Точки

Hmm, for an exam-exercise this really can be solved in a short way. Lines 24-28 are the key validation where, the input numbers are ordered(OrderByDescending), filtered(Where) and only the top 5 are taken (Take).

Best,

Code(100%):

using System;
using System.Linq;
using System.Collections.Generic;

namespace _03._Numbers
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> sequenceIntegers = Console
                      .ReadLine()
                      .Split()
                      .Select(int.Parse)
                      .ToList();

            List<int> nums = new List<int>();

            //List<int> rezult = new List<int>();

            //int count = 0;
            double averageSum = sequenceIntegers.Average();

            nums = sequenceIntegers
              .OrderByDescending(x => x)
              .Where(num => num > averageSum)
              .Take(5)
              .ToList();

            if (nums.Count <= 0)
            {
                Console.WriteLine("No");
                return;
            }

            Console.WriteLine(string.Join(" ", nums));

            //for (int i = 0; i < sequenceIntegers.Count; i++)
            //{
            //    if (sequenceIntegers[i] > averageSum)
            //    {
            //        rezult.Add(sequenceIntegers[i]);
            //    }

            //}

            //if (rezult.Count <= 0)
            //{
            //    Console.WriteLine("No");
            //    return;
            //}

            //int maxNum = rezult.Max();

            //for (int i = 1; i <= rezult.Count; i++)
            //{
            //    if (rezult[rezult.Count - i] <= maxNum)
            //    {
            //        count++;
            //        nums.Add(rezult[rezult.Count - i]);
            //    }
            //    if (count == 5)
            //    {
            //        break;
            //    }
            //}

            //Console.WriteLine(string.Join(" ", nums.OrderByDescending(x => x)));
        }
    }
}

0
nickwork avatar nickwork 657 Точки

Промених ти малко кода, проблема беше начина по който избираш елементите в последният for ... пускам ти променената част + набързо написах и по кратко решение на тази задача...ако имаш някаква въпроси питай... успех

if (rezult.Count <= 0)
            {
                Console.WriteLine("No");
                return;
            }

            rezult = rezult.OrderByDescending(x => x).ToList();

            for (int i = 0; i < rezult.Count; i++)
            {                
                    count++;
                    nums.Add(rezult[i]);
                
                if (count == 5)
                {
                    break;
                }
            }

..........................................................................................................................................

По кратко решение: 

List<int> sequenceIntegers = Console
                      .ReadLine()
                      .Split()
                      .Select(int.Parse)
                      .ToList();

            var result = sequenceIntegers.Where(x => x > sequenceIntegers.Average()).ToList();

            if (result.Count == 0)
            {
                Console.WriteLine("No");
                return;
            }

            Console.WriteLine(string.Join(" ", result.OrderByDescending(x => x).Take(Math.Min(5, result.Count))));

2
krum_43 avatar krum_43 756 Точки

Здравей колега(nickwork) ,

За пореден път печелиш наградата за най-кратко и интересно решение.

0
27/10/2020 16:14:26
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.