Loading...
g_todorov avatar g_todorov 106 Точки

Programming Basics Exam 20th Of November - Morning 06.Battle

Здравейте колеги,

реших задачата посочена в заглавието, но Judge ме оценява 80/100.

Ясно ми е, че имам повторение на код, което ще оправя, но не разбирам къде греша.

Предварително благодаря за помощта!

http://pastebin.com/9ScvLK5e

Тагове:
0
Programming Basics
StoyanVitanov avatar StoyanVitanov 11 Точки

http://pastebin.com/Ja6tVqcZ това дава 100/100

0
g_todorov avatar g_todorov 106 Точки

Благодаря за бързия отговор, но като посетя URL ми изписва This page has been removed!

0
StoyanVitanov avatar StoyanVitanov 11 Точки
  1. using System;

  2. using System.Collections.Generic;

  3. using System.Linq;

  4. using System.Text;

  5. using System.Threading.Tasks;

  6.  

  7. namespace ConsoleApplication1

  8. {

  9.     class Program

  10.     {

  11.         static void Main(string[] args)

  12.         {

  13.             int firstPlayer = int.Parse(Console.ReadLine());

  14.             int secondPlayer = int.Parse(Console.ReadLine());

  15.             int maxBattles = int.Parse(Console.ReadLine());

  16.  

  17.             var stopPoint = 0;

  18.  

  19.             for (int d1 = 1; d1 <= firstPlayer; d1++)

  20.             {

  21.                 for (var d2 = 1; d2 <= secondPlayer; d2++)

  22.                 {

  23.                     stopPoint++;

  24.                     if (stopPoint > maxBattles)

  25.                     { break; }

  26.                     Console.Write("({0} <-> {1}) ", d1, d2);

  27.                 }

  28.             }

  29.         }

  30.     }

  31. }


1
g_todorov avatar g_todorov 106 Точки

Много благодаря!

Сега ще го разгледам внимателно.

0
g_todorov avatar g_todorov 106 Точки

Разбрах къде съм сгрешил! ето и работещият ми код.

http://pastebin.com/pHUN8iaa

         

0
StoyanVitanov avatar StoyanVitanov 11 Точки

Още одеве щях да ти кажа, но оставих сам да стигнеш до този извод.

Ако сложиш counter++; още в началото на най-вътрешния цикъл, след него 

сложиш if ( counter > maxBat) {break;} , и накрая Console.Write("({0} <-> {1}) ",i,j); , 

ще си упростиш решението много повече. Ще изглежда по този начин: 

for (int i = 1; i <= firstPlayer; i++)
{
    for (int j = 1; j <= secondPlayer; j++)
    {
        counter++;  //още на влизане в цикъла бройш counter-а
        if (counter > maxBat) // ако е по-малък или равен на maxBat, печата, ако не е, влиза в if-а и break-ва
        {
            break;
        }
        Console.Write("({0} <-> {1}) ", i, j);
    }
}
 

:)

1
23/12/2016 23:24:45
g_todorov avatar g_todorov 106 Точки

Тарикатски си го оптимизирал не отричам! От тук насетне ще използвам тоя приом :)

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