Loading...
Ankoun1 avatar Ankoun1 18 Точки

5. Print Even Numbers - Queue

using System;
using System.Collections.Generic;
using System.Linq;

namespace CSA_Reverse_Strings
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] input = Console.ReadLine().Split().Select(x =>int.Parse(x)).ToArray();
            Queue<int> queue = new Queue<int>(input);
            int count = queue.Sum();
            int sum = 0;
            while(sum != count)
            {
                sum += queue.Peek();
                if (queue.Peek() % 2 == 1)
                {                    
                    queue.Dequeue();
                }
                else
                {
                    queue.Enqueue(queue.Dequeue());
                }             
             
            }
            Console.WriteLine(string.Join(", ",queue));
        }
    }
}

Тагове:
0
C# Advanced 19/09/2020 16:04:28
Ankoun1 avatar Ankoun1 18 Точки

using System;
using System.Collections.Generic;
using System.Linq;

namespace CSA_Reverse_Strings
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] input = Console.ReadLine().Split().Select(x =>int.Parse(x)).ToArray();
            Queue<int> queue = new Queue<int>(input);
            int count = queue.Count();           
            for (int i = 0; i < count; i++)           
            {                
                if (queue.Peek() % 2 == 1)
                {                    
                    queue.Dequeue();
                }
                else
                {
                    queue.Enqueue(queue.Dequeue());
                }             
             
            }
            Console.WriteLine(string.Join(", ",queue));
        }
    }
}

Може ли да стане по лесно като се ползва единствено само  една опашка  ,в която директно се записват данните от масива 1:1,без допълнителни структури?

0
19/09/2020 17:06:16
bradev avatar bradev 1 Точки

Може да стане, но тогава се обезмисля условието на задачата:

using System;
using System.Collections.Generic;
using System.Linq;

namespace _05.PrintEvenNumbers
{
    class Program
    {
        static void Main(string[] args)
        {
            Queue<int> evenNumbers = new Queue<int>(Console.ReadLine().Split().Select(int.Parse).Where(i => i % 2 == 0));
            Console.WriteLine(string.Join(", ", evenNumbers));
        }
    }
}
0
Ankoun1 avatar Ankoun1 18 Точки

екстра ей това е директно записване в променливата

0
krum_43 avatar krum_43 756 Точки

Може ли линк към условието?

0
bradev avatar bradev 1 Точки

Връзка към условието:

https://softuni.bg/downloads/svn/csharp-fundamentals/2020-May/CSharp-Advanced-May-2020/01.%20CSharp-Advanced-Stacks-and-Queues/01.%20CSharp-Advanced-Stacks-and-Queues-Lab.docx

0
bradev avatar bradev 1 Точки

Без да използвам Peek и Dequeue

using System;
using System.Collections.Generic;
using System.Linq;

namespace _05.PrintEvenNumbers
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] input = Console.ReadLine().Split().Select(int.Parse).ToArray();
            Queue<int> numbers = new Queue<int>();

            for (int i = 0; i < input.Length; i++)
            {
                if (input[i] % 2 == 0)
                {
                    numbers.Enqueue(input[i]);
                }
            }

            Console.WriteLine(string.Join(", ", numbers));
        }
    }
}

 

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