Loading...
patrik avatar patrik 26 Точки

 

 

 

На Проблем 3 аз ли не мога да разбера как се формира сумата или има някаква грешка в примерите?

problem1   Numbers from 1 to N

problem2   Numbers Not Divisible by 3 and 7

problem3 to do

problem4    Print a Deck of 52 Cards

problem5    Calculate 1 + 1!/X + 2!/X2 + … + N!/XN

На проблем 5 стойностите от примерите в домашното  получават различен резултат на изхода на конзолата( не са еднакви с тези от примерите). Някой ще погледне ли дали проблема е в мен?

problem6   Calculate N! / K!

problem7    Calculate N! / (K! * (N-K)!) -На проблем 7 стойностите от примерите в домашното  получават различен резултат на изхода на конзолата( не са еднакви с тези от примерите). Някой ще погледне ли дали проблема е в мен?

problem8 to do

problem9 to do

problem10 to do

problem11 to do

problem12 to do

4
dimipan avatar dimipan 30 Точки

Ето и моите досега решени задачи:

Problem 1. Numbers from 1 to N

Problem 2. Numbers Not Divisible by 3 and 7

Problem 3. Min, Max, Sum and Average of N Numbers

В примерите от задача 3 първото число от колоната ти показва общия брой на числата и не се сумира !!!

Problem 4. Print a Deck of 52 Cards

Тук за по-лесно съм използвал два масива от тип стринг, които влагам един в друг чрез два вложени цикъла foreach. Също така за по-добро форматиране на резултата ползвах и форматиращи стрингове при формирането на четирите колони.

Problem 5. Calculate 1 + 1!/X + 2!/X2 + … + N!/XN

Явно има накаква грешка в първите два примера от задача 5. С третия пример няма проблем! При мен за n=3 и x=2, получавам S=2.75000 ! За n=4 и x=3 се получава S=2.07407 ! Анализирах внимателно алгоритъма и смятам, че е правилен.

Problem 6. Calculate N! / K!

Problem 7. Calculate N! / (K! * (N-K)!)

Problem 8. Catalan Numbers

Problem 9. Matrix of Numbers

Problem 10. * Calculate GCD

Problem 11. * Trailing Zeroes in N!

14
dimipan avatar dimipan 30 Точки

Patrik В задача 7 основната ти грешка е, че в третия цикъл при изчислението на К! факториела, повторенията са ти n-пъти вместо k ! Иначе в условието на задачата се изисква да се реши с два цикъла, а не с три, помисли не е толкова сложно! Друго нещо е че при изчисления с факториели е добре да се ползва типа BigInteger, за да се избегне препълването при другите типове!

Това е моето решение на задача 12 за числата наредени в спирална матрица:

Problem 12. ** Spiral Matrix

Бих казал, че за мен това беше най-трудната от всички 12 задачи и ми отне много време да стигна до решението!

Надявам се да съм бил полезен!

2
ZvetanIG avatar ZvetanIG 907 Точки

Здравейте,  реших 11 задача.

Ето го и решението http://pastebin.com/hFVeMisb , но нещо ме съмнява примера в условието.  Там при n = 100000  нулите са 24999.  Аз получавам отговор 21111 нули.

Логиката ми е следната: При умножение на числа, нула на края се получава само при умножение на число завършващо на 5 с четно число или при умножение на кое да е число с число завършващо на нули.

Ако преброя числата кратни на 5 и нулите в края на числата в интервала от  1 до N, аз ще знам броя на нулите на N!.

Някой ако е решил задачата моля да пише, за да сверим отговорите.

0
externo avatar externo 119 Точки

отговора е абсолютно точен, не случайно обяснението е: think why

трябва да разшириш малко логиката, има числа които освен че се делят на 5, се делят и втори, трети... път на 5 като 25, 125 и т.н. дават възможност за допълнителен брой нули заедно с четните числа, които са достатъчно много

дефакто трябва да броиш не колко числа се делят на 5, а колко пъти същите тези числа се делят на 5 :) успех

5
ZvetanIG avatar ZvetanIG 907 Точки

За това не бях се сетил. Благодаря ти!

Ето преработеният код, мисля че работи перфектно http://pastebin.com/sNM5H8AY

Оказа се достатъчно да се намерят числата, които се делят на 5 и да се преброят, колко пъти общо те ще се разделят на 5.

1
dimipan avatar dimipan 30 Точки

ZvetanIG, примера си е много точен. За подобро изпълнение на задачата ти препоръчвам да прочетеш следната статия Trailing zero и да използваш приложената формула на de Polignac's:

countZeroesFactorialN = (N / 5) + (N / 5^2) +...+(N / 5^k), където 5^k > N .

Логиката на тази формула е желязна и със сигурност работи! Надявам се да съм ти помогнал.

Успех!

3
Fundamentalen avatar Fundamentalen 133 Точки

 

 

 

Problem 1. Numbers from 1 to N

Problem 2. Numbers Not Divisible by 3 and 7

Problem 3. Min, Max, Sum and Average of N Numbers

Problem 4. Print a Deck of 52 Cards

Problem 5. Calculate 1 + 1!/X + 2!/X2 + … + N!/XN

Problem 6. Calculate N! / K!

Problem 7. Calculate N! / (K! * (N-K)!)

Problem 8. Catalan Numbers

Problem 9. Matrix of Numbers

Problem 10. Odd and Even Product

Problem 11. Random Numbers in Given Range

Problem 12.* Randomize the Numbers 1…N

Problem 13. Binary to Decimal Number

Problem 14. Decimal to Binary Number

Problem 15. Hexadecimal to Decimal Number

Problem 16. Decimal to Hexadecimal Number

Problem 17.* Calculate GCD

Problem 18.* Trailing Zeroes in N!

Problem 19.** TODO

30
ivailozd avatar ivailozd 75 Точки

Понеже мъча 12-та задача и видях, че и при теб повтаря числа. Т.е. не изписва числата от 1 до n в произволен ред, а работи като предната (11-та) - изписва произволни числа от 1 до n. Ако измислиш решение, което да отговаря на условието, моля, сподели.

4
StanDimitroff avatar StanDimitroff 90 Точки

Мда условието на 12-та задача е да не се повтарят числата.Затова трябва да се проверява всяко следващо число дали е принтирано вече и ако е-да се извърти цикъла със същата итерация за повторен опит.Ако числото не е отпечатано се опечатва и се минава на следващата итерация.Аз съм го направил с масив от булеви стойности, които се променят в зависимост от това дали елемента с индекс равен на генерираното число е true или false.Eтo едно примерно решение.

8
ScreeM avatar ScreeM 19 Точки

Извинявай би ли обяснил решението си на 4 задача и къде по точно видя, че 3, 4, 5, 6 са ♣ ♦ ♥ ♠ .. Благодаря предварително и поздравление за успешно решените задачи!

2
dim4o avatar dim4o 288 Точки

Ето и Problem 11*. Оказа се доста лесен.

2
ZvetanIG avatar ZvetanIG 907 Точки

Здравей,

интересно си решил 10-та задача. Може ли да обясниш, как стигна до това решение?

0
zontak avatar zontak 457 Точки

Пичове.. къде греша в задача 9.. Matrix :? Тя работи но не точно .. ;д http://pastebin.com/7H6bQseM Започва да брои от 2.. което е ясно.. защото един път съм задал да започва от row + 1 counter-a а в вложения цикъл съм задал counter++ .. Как да го направя да започва от 1? ;д Нещо елементарно е .. но какво ли не пробвах.. Row = -1 , 0 .. не знам какво става но час и половина вече не се получава ;д Или съм зациклил много или съм ослепял и не виждам елементарната грешка.. ;д нз кое от 2-те ;д

6
beBoss avatar beBoss 507 Точки

 

 

Console.WriteLine("enter number < 20");
byte n = byte.Parse(Console.ReadLine());
if ((n <= 20 ) && (n >= 1))
{
  for (int row = 1; row <= n; row++)
  {
     for (int col = 0; col < n; col++)
     {
       Console.Write("{0, 2}",row+col);
     }
     Console.WriteLine();
  }
}
else
{
  Console.WriteLine(" Invalid input ");
}
5
externo avatar externo 119 Точки

още един алгоритъм:

 

 

for (int i = 0; i < n; i++)
   {
   for (int j = i; j < i+n; j++)
      {
         Console.Write(j + 1 + " ");
      }
   Console.WriteLine();
   }

0
Ivan.Nikolov avatar Ivan.Nikolov 8 Точки

Ето едно решение на 9-а.

int n = int.Parse(Console.ReadLine());
for (int row = 0; row < n; row++)
{
     for (int column = 1; column <= n; column++)
      {
           Console.Write("{0} ", row + column);
      }

     Console.WriteLine();
}

0
alexxdim94 avatar alexxdim94 33 Точки

Потърси в google за "Factorials and trailing zeroes". smile Много се чудих как да го направя за големи числа и пробвах какво ли не. Накрая реших да проверя дали има някакъв математически алгоритъм за големи числа и се оказа, че има! 

0
ZloboMiR avatar ZloboMiR 50 Точки

По условие не е забранено и с BigInteger32?

0
nikolay.dimov83 avatar nikolay.dimov83 143 Точки

Не става с Big Int - реших за спорта да пробвам да изчисля факториела и след това да броя нули - процесора ми е i3, 6 GB RAM. За 100000! го оставих през нощта да върти - на сутринта още мигаше курсора. Иначе решавам задачата, кото броя всяко от числата в 100000! колко пъти се дели на 5.

1
zontak avatar zontak 457 Точки

Приятелю.. ти тества ли задачата с 5 и -15.. , защото на мен нещо не ми показва никакъв отговор..

4
alexxdim94 avatar alexxdim94 33 Точки

Упс, благодаря за забележката. Поправих го. smile

1
zontak avatar zontak 457 Точки

Колеги.. по какъв начин мога на 12-та задача матрицата.. да направя проверка като срещне друго число да променя посоката.. Аз я направих да се върти.. и започва си от 1.. върти на дясно.. после на долу.. после ляво и като започне нагоре.. ми закрива единицата и започва пак по стария път.. вместо като срещне число != 0 веднага да смени посоката която съм указал.. Пробвах така но ми дава грешка.. Ето го и кода В фор цикъла съм го направил до 12 за да може които изпробва програмата да се увери че се върти.. Ако се поправи i <= maxRotation ще се завърти според условието.. до n * n. Ето с каква проверка се опитвам да оправя нещата но дава грешка.. ;х Някакви други идеи за проверка :? Само ако може да ми създадете проверка по този код.. щото си разбирам логиката и кода.. а не да ми дадете някой код за напреднали който ще го зяпам 3 дни докато се чатна кво става ;д Благодаря предварително :)

6
dentia avatar dentia 362 Точки

Ето го моя вариант. Съвсем не е оптимизиран и можех да си послужа с методи, вместо само да трупам цикли, ама нейсе. Струва ми се поне, че лесно може да му се схване логиката (нали аз съм го писала, как няма да ми се струва логично, хаха).

3
HPetrov avatar HPetrov 822 Точки
Не би трябвало да ти хварля грешка. Бях видях по горе същото решение и явно работи за колегата, а и моята логика се варти около подобна проверка също и няма проблеми. Като гледам на screenshot-а имаш правилна проверка само за right посоката. прави я същата и за другите посоки, и ако още ти прави проблеми най-добре го пусни през дебъгера и си наблюдавай индексите къде ходят.
1
zontak avatar zontak 457 Точки

@H.Petrov ами .. аз го бях направил за всички посоки.. но го махнах.. за да видя от къде ми идва грешката.. и направих проверка само за на дясно с цел да се види ясно на скриин-а къде е проверката и да се отличи от останалите посоки.. Да може да се акцентира на нея :) Ти пусна ли кода да видиш дали и на теб ще ти даде грешка или?

6
hristolilov avatar hristolilov 394 Точки

Ето и моите решения, ще ъпдейтвам поста с напредъка си :)

1.Numbers from 1 to N

2.Numbers not divisible by 3 and 7

3.MinMaxSumAndAverage - Вижте това решение, може да ви се стори интересно.Реших да го направя с масиви, за да може да работи с безкраен брой числа, съответно забих на математическите операции с масиви, наложи ми се да се запозная с linq и така нататък :)

Задача, която трябваше да отнеме не повече от 2 минути ми отне в крайна сметка над 30, но съм горд с решението и научих доста нови работи!

4.PrintDeckOf52

5.CalculateFactorialFormula

4
kiko144 avatar kiko144 795 Точки

Колеги само да споделя, че домашното е ъпдейтнато и има добавени още задачи! Изтеглете го наново!

5
Plami avatar Plami 373 Точки

Да така е :) Имаме още 7 задачи, над които да цъкаме и разсъждаваме.

0
Cwetkoyy avatar Cwetkoyy 3 Точки

Ето 2-ра задача от мен:

 static void Main()
    {
        Console.Write("Enter a number : ");
        int n = int.Parse(Console.ReadLine());
        for (int i = 1; i <= n; i++)
        {
            if ((i % 3 == 0) || (i % 7 == 0))
            {
                continue;
            }
            Console.WriteLine(i);
        }

Поздрави!

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