Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

yana_neykova avatar yana_neykova 3 Точки

Simple loops - Odd and even sum

Здравейте, може ли малко помощ с една от задачите от лекцията за цикли - четна/нечетна сума.

Като си напиша кода тръгва във VBA, не дава грешки, но накрая не изписва резулата (

Yes

Sum = 70, съответно - No;  Diff = 1.

 

Ето го и кода, който ползвам : http://pastebin.com/eqSKmuCx . 

Благодаря предварително! :)

Тагове:
0
Programming Basics
ThePSXHive avatar ThePSXHive 436 Точки

Не разбрах защо условието в цикъла е

i <= ( 2*n - 1)

Принципно цикълът трябва да се изпълнява до n. Като изключим (поправим) това, дясната част от тези проверки е излишна

else if (i % 2 != 0)// #1
else if (evenSum != oddSum)// #2

Замени ги единствено с else. Понякога не се получават точки в Judge защото изходът на програмата не е оформен стриктно по някакви изисквания. Прегледай отново условието и по-специално частта с текста, придружаващ финалния резултат, защото аз получавам 100/100 при това извеждане на резултатът:

if (evenSum == oddSum)
{
    Console.WriteLine("Yes Sum = {0}", evenSum);
}
else 
{
    Console.WriteLine("No Diff = {0}", diff);
}

но е възможно ситуацията да е по-гъвкава и да не се налага точно това оформление. Не разполагам с условието в момента, но останалата част от кода е наред.

0
21/02/2017 08:06:00
maleksieva avatar maleksieva 0 Точки

Здравейте, имам проблем със същата задача -условието е: 

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

вход

изход

коментар

 

вход

изход

коментар

 

вход

изход

коментар

4

10

50

60

20

Yes

Sum = 70

10+60 = 50+20 = 70

4

3

5

1

-2

No

Diff = 1

3+1 ≠ 5-2

Diff =
|4-3| = 1

3

5

8

1

No

Diff = 2

5+1 ≠ 8

Diff =
|6-8| = 2

 

Кода ми е следния: https://pastebin.com/RtAz8PHi

Но конзолата ми връща следния отговор за първия пример: 

4

10

No, max diff = 10

PP.Моля да ми кажете и как ога даоценявам вашата помощ (виждам, че има точковастема, но не мога да разбера как да я ползвам)?

0
svetlio_b1 avatar svetlio_b1 2 Точки

Направи цикъла от 0 до < n и мисля, че ще се оправи.

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

така значи няколко неща едно по едно.

Първо точковата система в judge е автоматична,ако преминеш през всичките проверки с кода си получаваш 100 точки. Иначе ако само частично успееш ще вземеш процент от точките и ще ти покаже при кои тестове грешиш.Това са примерни тестове с числа или поредица от символи тестващи кода.

Сега за твоето решение,значи колегата е прав направила цикъла си грешно. както си го направила. При примерен вход от 4 числа.

 Става for(int i=1;i<n;i++) 1 въртене  i=2 2ро въртене i=3 и цикъла ти спира.

Ще попиташ защо но така си го направила с i++ показваш на компилатора да увеличи i+1 след като  направи завъртането. Затова променяш първо  i=0  и i<n и сега завъртаме на ново твоя цикъл с 4 примерни числа. 1во завъртане i=0  число 10 2ro завъртане i=1 число =50 3то завъртане i=2 число =60 4то завъртане i=3<n тук цикъла ти спира i=3 числото =20 и проверяваме числата ти 10+60 равно на =20+ 50  в случая това е така и пишеш "yes" и сумата =70.

 

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