Loading...
rostislav_kolev avatar rostislav_kolev 3 Точки

16. * Елемент, равен на сумата на останалите

Да се напише програма, която въвежда n цели числа и проверява дали сред тях съществува число, което е равно на сумата на всички останали. Ако има такъв елемент, печата "Yes" + неговата стойност; иначе печата "No" + разликата между най-големия елемент и сумата на останалите (по абсолютна стойност).  

          {
            var n = int.Parse(Console.ReadLine());
            var max = int.Parse(Console.ReadLine());
            var sum = 0;
            var num = 0;
            for (int i = 1; i < n; i++)
            {
                num = int.Parse(Console.ReadLine());
                if (num > max)
                { max = num;}
                sum += num - max*2;
            }
            if (sum == max)
                Console.WriteLine("Yes sum = " + sum);
            else
                Console.WriteLine("No Diff = " + Math.Abs(sum-max))
        }

Колеги, помъчих се здраво над тази привидно лесна задача, но не ми се получава. Ще се радвам, ако някой ми удари едно рамо ;)

Тагове:
0
Programming Basics
Destinote avatar Destinote 5 Точки

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _10.HalfSumElement
{
    class HalfSumElement
    {
        static void Main(string[] args)
        {
            int NumberOfNumbers = int.Parse(Console.ReadLine());
            int MaxNumber = -1000000000;
            int Sum = 0;

            for (int Index = 0; Index < NumberOfNumbers; Index++)
            {
                int Number = int.Parse(Console.ReadLine());
                Sum = Number + Sum;

                if (Number > MaxNumber)
                {
                    MaxNumber = Number;
                }

            }

            int SumWithoutMax = Sum - MaxNumber;

            if (SumWithoutMax == MaxNumber)
            {
                Console.WriteLine($" Yes Sum = {MaxNumber}");
            }
            else
            {
                Console.WriteLine($"No Diff = {Math.Abs(SumWithoutMax - MaxNumber)}");
            }
        }
    }
}

 

Ето го и моето решение, с малки разлики, от това на колегата Петър. Аз просто не съм прочел предварително числото, което ще прочитаме от конзолата за всяко изпълнение на цикъла, понеже не виждам смисъл да се декларира предварително, тей като няма да имаме нужда от него, извън самия цикъл. Има и други разлики, като начина по който се декларира Максимумата, а от там и номера на повторения на цикъла, но то общо взето кода си работи перфектно. Надявам се че ще е от ползва за някой :) 

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