Loading...
IliyaPetrov avatar IliyaPetrov 1 Точки

Относно задачите "Print Sequence" и "Print Long Sequence"

Здравейте, 

искам да попитам някой намерил ли е елегантно решение за махане на запетайката преди  (респективно след) реда.

Ето моето решение, но ми се струва малко тромаво с тези "if"-ове: http://pastebin.com/0rN096Xp. Ако някой се е сетил за нещо по- елегантно, ще се радвам да го сподели.

0
Programming Basics
Innos avatar Innos 419 Точки
Best Answer

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

Console.Write(2);
for (i = 3; i <= 11; i++)
{
    Console.Write(",");
    if (i % 2 == 0)
    {
          Console.Write(i);
    }
    else
    {
          Console.Write(-i);
    }
}
 
1
29/10/2015 13:51:14
rsdenchevs avatar rsdenchevs 5 Точки

Здравей, 

На мен логиката ти ми изглежда ок, давам ти моя код - мисля, че просто е с по-малко редове,но не мисля че има как да се направи без if/else.

http://pastebin.com/EuZ3Kpv7 

 

1
Stephen_MS avatar Stephen_MS 4 Точки

При мен е без if/else, с два counters: един за положителните и един за отрицателните стойности. 

http://pastebin.com/FydKzFW4

Твоят вариант ми харесва повече

1
IliyaPetrov avatar IliyaPetrov 1 Точки

rsdenchevs

Добро решение, но ти така или иначе си го направила без запетайки, а с интервали..

0
30/10/2015 10:33:27
IliyaPetrov avatar IliyaPetrov 1 Точки

Stephen_MS

Интересно решение, изобщо не се бях замислял за такъв вариант, но виж, че и при теб има една запетайка след последния член.

0
30/10/2015 10:33:58
RoYaL avatar RoYaL Trainer 6849 Точки

Аз мисля, че 90% от хората са го направили с условни конструкции, включително и аз, когато решавах тази задачка преди доста време.

Иначе се оказа, че има начини да се направи и без. Преди известно време колега зададе такъв въпрос и се появиха няколко възможности. Един колега предложи с две променливи в цикъла. На мен ми дойде на акъла пък формулка, която смята множителя дали да е 1 или -1

https://softuni.bg/forum/5154/textbook-exercise-10-1st-lecture

3
nakko avatar nakko 6 Точки

Здравейте от мен, аз го измислих без запетайка :) Направих още едно условие.

using System;

class PrintASequence
{
    static void Main()
    {
        int number = 2;
        while (number <= 11)
        {
            if (number % 2 != 0)
            {
                if (number == 11)
                {
                    Console.WriteLine("{0}", number * (-1));
                    return;
                }
                Console.Write("{0}, ", number * (-1));
            }
            else
            {
                Console.Write("{0}, ", number);
            }
            number++;
        }
    }
}

1
30/10/2015 18:36:04
nikiii07 avatar nikiii07 31 Точки

Аз го бях направил с ternary оператори:

for(int i = 2; i <= 11; i++)
{
    Console.Write((i % 2 == 0 ? i:-i) + ((i != 11) ? ", ":""));
}

 

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