Професионална програма
Loading...
+ Нов въпрос
StanislavDraganov avatar StanislavDraganov 2 Точки

Homework Loops: Odd and Even Product

Здравейте,

Моето решение може да видите тук: https://github.com/stan87/EduProject/blob/master/OddEvenProduct2.cs

За всеки случай, условието е: 

⦁    Odd and Even Product
You are given n integers (given in a single line, separated by a space). Write a program that checks whether the product of the odd elements is equal to the product of the even elements. Elements are counted from 1 to n, so the first element is odd, the second is even, etc.

До колкото моите тестове са точни, програмата дава желаните резултати. Обаче има едно нещо, което ме мъчи. Не мога да схвана защо при if условието в по-долния for цикъл се налага да проверяваме i променливата, а не number. Предполагам, че просто не разбирам все още как точно се обхождат и Parse-ват string[] масиви, но ако някой може да разясни малко - ще съм много благодарен :)

 for (int i = 0; i < numbers.Length; i++)
        {
            int number = int.Parse(numbers[i]);

            if (i % 2 == 0)
            {
                even *= number;
            }
            else
            {
                odd *= number;
            }
        }

 

P.S. Също така, всякакви забележки по решението са повече от добре дошли ;)

Тагове:
0
Programming Basics 19/02/2016 04:46:09
gabi.ivanova avatar gabi.ivanova 370 Точки

Проверява се i в условието на if защото ти търсиш сумата на четните и на нечетните елементи в редицата, а не по стойност на самото число. На всяко завъртане на цикъла четеш число като първото е нечетна позиция, следващото четна и т.н. В случая са дадени на 1 ред числата значи ги четеш и слагаш в масив. Цикълът, който си показал обхожда този масив numbers и проверява дали позицията е четна или нечетна и съответно прави нещо с числото, без значение какво е то.

2
19/02/2016 07:51:12
kiso_blg avatar kiso_blg 57 Точки

"Elements are counted from 1 to n, so the first element is odd, the second is even, etc."

Ти не започваш броенето от 1, а от 0. Първия елемент ти го смята за четен и така нечетните елементи ги прибавяш към even. Сменил си им местата. Ако искаш да броиш в цикъла от 0, трябва да ги обърнеш. При if (i % 2 == 0) { odd *= number }. 

3
gabi.ivanova avatar gabi.ivanova 370 Точки

или проверката може да е ( (i+1) % 2 == 0) така проверката в цикъла ще обходи елементите от 0 до n и ще смята елемента с нулев индекс за първи, т.е. нечетен, съответно този който е на 1-ви индекс за 2-ри елемент - четен и т.н.

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