[C# Exam - 29ти] Задача 2 - Quadronacci Rectangle


3

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

заповядайте моето решение на задачата. На мене най-трудно ми беше да съобразя къде да има празни интервали и къде да е новия ред.

Поздрави и успех,

Криси

http://pastebin.com/zmzUEM0T

Линк към условията:

http://downloads.academy.telerik.com/svn/csharppart1/Lectures/7.%20Exam%20Preparation/2012-2013/Variant%203.zip


 




Отговори



1
Това е моето решение - http://pastebin.com/hqVPkjbH

от szaekov (155 точки)


1
Ето моето:
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace QuadronacciRectangle
{
    class Program
    {
 
        static void Main(string[] args)
        {
            List<long> quadranachi = new List<long>();
            for (int i = 0; i < 4; i++)
            {
                quadranachi.Add(long.Parse(Console.ReadLine()));
            }
            byte r = byte.Parse(Console.ReadLine());
            byte c = byte.Parse(Console.ReadLine());
            int numberOfQuadranachi = r * c;
            for (int i = 4; i < numberOfQuadranachi; i++)
            {
                quadranachi.Add(quadranachi[i - 1] + quadranachi[i - 2] + quadranachi[i - 3] + quadranachi[i - 4]);
            }
            int z=0;
            for (int i = 0; i < quadranachi.Count; i++)
            {
                if (z==c)
                {
                    z = 0;
                    Console.WriteLine();
                    Console.Write(quadranachi[i]+" ");
                    z++;
                }
                else if (z==c-1)
                {
                    Console.Write(quadranachi[i]);
                    z++;
                }
                else
                {
                    Console.Write(quadranachi[i] + " ");
                    z++;
                }
 
            }
        }
    }
}

 




1

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

a b c d  - са съответно първите 4 входящи числа 

long Result = a + b + c + d;
                    if (count == 1)
                    {
                        b = Result;
                        count++;
 
                    }
                    else if (count == 2)
                    {
                        c = Result;
                        count++;
                    }
                    else if (count == 3)
                    {
                        d = Result;
                        count = 0 ;
                    }
                    else if (count == 0)
                    {
                        a = Result;
                        count++;
                    }
и БГ кодера ми дава 60% като 4 от проверките дават грешен отговор след което написах нова изчислителна схема 
                    result = a + b + c + d;
                    a = b ;
                    b = c;
                    c= d;
                    d = result;
и тук вече кодера дава 100% . Реших да си намеря грешката и вече близо 2 часа не успявам . Някакви идей - count се нулира във виншния цикъл ,  така че не е от там.

 


от TeodorTunev (3061 точки)


0
http://pastebin.com/Tx29v7Bw Виж дали това ще ти помогне! Ако има нещо неясно от кода, пиши :)

от batebobo (235 точки)

0
Мен задачата ми е ясна и когато просто сложа второто изчисление което съм написал ми дава 100/100 , но искам да разбера защо първото ми дава 60/100 при положение , че според мен са едни и същи.

от TeodorTunev (3061 точки)


2

Тази задача вече успях да я реша по-бързо, приложих два фор-цикъла -съответно за редовете и за елементите (или колоните), отпечатване на първия елемент и с изместване после на стойностите на членовете на редицата, за да може както да отпечатва елемента, който е резултат от предходните, но и същевременно да не пропуска първите четири, които се задават от конзолата :

using System;
 
class QuadronacciRectangle
{
    static void Main()
    {
        long first = long.Parse(Console.ReadLine());
        long second = long.Parse(Console.ReadLine());
        long third = long.Parse(Console.ReadLine());
        long fourth = long.Parse(Console.ReadLine());
 
        int r = int.Parse(Console.ReadLine());
        int c = int.Parse(Console.ReadLine());
 
        long next = 0;
 
        for (long row = 1; row <= r; row++)
        {
            for (long col = 1; col <= c; col++)
            {
                next = first;
                Console.Write(next + " ");
                first = second;
                second = third;
                third = fourth;
                fourth = next + first + second + third;
            }
            Console.WriteLine();
        }
    }
}

от ilina (310 точки)


1

Здравейте, колеги! Знам, че има доста решения на тази задача, но не разбирам защо моето не работи. Ще съм много благодарна, ако някой го погледне. Все си мисля, че нещо малко ми убягва, но вече много време загубих да го търся... Ето кода:
http://pastebin.com/D26sennZ


от Yoana_Nikolova (0 точки)


0
Не беше зле да спомена, че всъщност проблемът идва при печатането на нов ред/space.

от Yoana_Nikolova (0 точки)

0
Сложи един Console.WriteLine() в края на програмата, след последния цикъл и си готова.

от martingeorgiev (2318 точки)



1
Някой може ли да помогне и да каже къде греша защото ми дава само 50/100
http://pastebin.com/8MM39gXe

от svetliohshs (25 точки)


0
Проблемът ти е че типът int не побира в определен момент сумираните ти числа - нарастват прекалено бързо. Използвай long. Пробвах я и дава 100/100 без да променям друго. http://pastebin.com/e3g9WM0M Промените са на редовете: 7,8,9,10,20 Успех със следващите задачи!



1
Ето и от мен едно смея да твърдя качествено решение :p http://pastebin.com/uXz5whDz



1

Моето решение 100/100 с вложени цикли http://pastebin.com/wVVEc5d8 .На тази задача тестовете отчитат спейсовете и празните редове, пробвах без тях и дава само 70/100.То си го пише и в условието, но на една друга задача със същото изискване нямаше проблем с празните места.




0
Това дали отчита или не отчита спейсовете накрая можеш да го разбереш от типа на checker-а. Ако е Trim, значи реже спейсовете и е без значение накрая дали ги има или няма, но ако е Exact, отчита абсолютно всичко и съответно някой тестове няма да ти минат.

от Yordan.Bonev (780 точки)

0
Хм това не го знаех.Но на тази задача в BG Coder пише точно Trim.Забелязах, че съм омазал друго-забравил съм да печатам празен ред след края на всяка колона в единя вложен цикъл:) Да бачка си и без проверките за последните спейсове и празни линии.