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
fiherLuci avatar fiherLuci 225 Точки

А какво правиш ако най-голямото число е -10 ? При проверката дали е по-голямо от сумата, която е 0 ? Приеми, че най-голямото число е първото и е отрицателно и пропуснеш да го запишеш в MaxNum и после сумата е това число и проверяваш останалите както си трябва....но първото е пропуснато.

0
dydimitrov avatar dydimitrov 41 Точки

Според мен ако направиш първоначалната стойност на sumNum = x.MinValue  ще се получи, както писа колегата първото число ако е отрицателно ще ти го прескача и започваш с грешка .

0
stoyanov7 avatar stoyanov7 70 Точки

Пробвай така да го напишеш.

16.     if (number>=SumNum)
17.     {
18.         MaxNum = number;
19.     }
20.     SumNum+=number;

0
mkpetrov avatar mkpetrov 8 Точки

Да стана , благодаря ви много за идеите :) 100/100 

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