Loading...
mkpetrov avatar mkpetrov 8 Точки

Simple Loops - Half Sum Element

Условието на задачата е :

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

вход

изход

коментари

7

3

4

1

1

2

12

1

Yes

Sum = 12

3 + 4 + 1 + 2 + 1 + 1 = 12

4

6

1

2

3

Yes

Sum = 6

1 + 2 + 3 = 12

3

1

1

10

No

Diff = 8

|10 - (1 + 1)| = 8

3

5

5

1

No

Diff = 1

|5 - (5 + 1)| = 1

3

1

1

1

No

Diff = 1

 

Кода ми е: http://pastebin.com/Rrrq54xu
Не мога да разбера защо правя 93/100 в Джъдж.

Нещо не мога да забележа грешката си .Може ли някой да ми помогне леко ? :)

 

Тагове:
0
Programming Basics
g_todorov avatar g_todorov 106 Точки

Здравей mkpetrov,

след известно главоблъскане успях да я измъдря тая задача. Тук особеното е да сравняваш в началото 

с възможно най-минималната стойност позволена за формат int. - това е int.MinValue. Стойността е много ниска и ако искаш може да си я видиш с един Console.WriteLine(); лично аз вече я забравих :) Кръстил съм променливата, която съдържа от начало в себе си int.MinValue с дълго и "говорящо " име (comparisonMaxBasis), за да се разбира лесно и от четящите след мен кода.

Успех!

Ето и кода:

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

namespace HalfSumElement2
{
    class Program
    {
        static void Main(string[] args)
        {
            var nCount = int.Parse(Console.ReadLine());
            var sum = 0;
            var num = 0;
            var comparisonMaxBasis = int.MinValue;
            for (int i = 1; i <= nCount; i++)
            {
                num = int.Parse(Console.ReadLine());
                if (num > comparisonMaxBasis)
                {
                    comparisonMaxBasis = num;
                }
                sum = sum + num;
            }
            sum = sum - comparisonMaxBasis;
            if (sum == comparisonMaxBasis)
                Console.WriteLine("Yes sum = " + sum);
            else
                Console.WriteLine("No Diff = " + Math.Abs(sum - comparisonMaxBasis));
        }
    }
}

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