18 Задача
Problem 18. * Trailing Zeroes in N!
Console.Write("Enter n: (n >= 0) = ");
int n = int.Parse(Console.ReadLine());
int zeros = 0;
int k = (int)(Math.Log10(n) / Math.Log10(5));
Console.WriteLine(k);
for (int i = 1; i <= k; i++)
{
zeros = zeros + n /(int)Math.Pow(5,i);
}
Console.WriteLine("Trailing zeros of " + n + "! = " + zeros);
Само дето не измислих нищо за THINK WHY ? , освен че има толкова нули накрая, колкото е резултата !
А ,вие какво измислихте ?
Здравейте :) ето моето решение за задача 17, но не работи за отрицателни стойности :/ някакви съвети? http://pastebin.com/RHR2aTB4
Ето го и моето на 17, ако ти помогне нещо ще се радвам, мозъкът ми е вече на друга вълна не помня какво съм правила:
Console.Write("a = ");
int a = int.Parse(Console.ReadLine());
Console.Write("b (b<=a) = ");
int b = int.Parse(Console.ReadLine());
int quotient;
int restPrevious;
int restNext;
int rest;
int GCD;
if (a >= b)
{
quotient = a / b;
rest = a % b;
if (rest == 0)
{
Console.WriteLine("GCD(a, b) = " + b);
}
else
{
quotient = b / rest;
restNext = b % rest;
restPrevious = rest;
rest = restNext;
if (rest == 0)
{
GCD = restPrevious;
}
else
{
do
{
quotient = restPrevious / rest;
restNext = restPrevious % rest;
restPrevious = rest;
rest = restNext;
} while (rest != 0);
GCD = restPrevious;
}
Console.WriteLine("GCD(a, b) = " + GCD);
}
}
else
{
Console.WriteLine("invalid input");
}
Късно, но все пак: използвай Math.Abs() когато си парсваш input. GCD се дефинира по стойност, няма значение множителя (+1 или -1 за отрицателни).
Ето и моето решение на Problem.*17 CalculateGCD.
В задачата се иска да се използва Алгоритъма на Евклид , така че и на двамата ви решенията не отговарят на изискванията .
Eто видеото ,което аз гледах за да разбера алгоритъма и напиша кода за него, дано ви помогне :
Има различни начини да решиш задачата с Алгоритъма на Евклид. Всеки си има своята логика. Благодаря за съветите :)
Problem 19.** Spiral Matrix
И аз приключих с това домашно и преминавам към следващото
Къде изчезнаха всички ? Сигурно вече се подготвят за изпита .
while (true)
{
Console.Write("n = ");
int n = int.Parse(Console.ReadLine());
if (n >= 1 && n <= 20)
{
int[,] matrix = new int[n, n];
int k = 1, c1 = 0, c2 = n - 1, r1 = 0, r2 = n - 1;
while (k <= n * n)
{
for (int i = c1; i <= c2; i++)
{
matrix[r1, i] = k++;
}
for (int j = r1 + 1; j <= r2; j++)
{
matrix[j, c2] = k++;
}
for (int i = c2 - 1; i >= c1; i--)
{
matrix[r2, i] = k++;
}
for (int j = r2 - 1; j >= r1 + 1; j--)
{
matrix[j, c1] = k++;
}
c1++;
c2--;
r1++;
r2--;
}
/* Printing the Spiral Matrix */
Console.WriteLine("\nThe Spiral Matrix for n = " + n + " is:\n");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
Console.Write("{0,3} ", matrix[i, j]);
}
Console.WriteLine();
Console.WriteLine();
}
}
else//(n < 1 || n > 20)
{
Console.WriteLine("invalid input\n");
}
Console.WriteLine();
}
И от мен едно решение на Problem 19.**Spiral Matrix .Мисля че по кратко и ясно не съм срещал.
Последно кое е домашното ?
Домашното, което можеш да изтеглиш от системета е актуално.
Здравейте колеги! Искам да попитам за 4-та задача така важи ли решението http://pastebin.com/rKSDJEhB както съм го написал? Output-ът е по условието и съм спазил изискванията - 2 for и switch. Искам да знам дали решението ми е добро.
Здравей, след като "Output-ът е по условието и съм спазил изискванията - 2 for и switch" и резултата е верен - решението ти е идеално!
Много добре се е получило. Даже замених символите направо с кодовете им и пак стана.
Ето и моят вариант за задача 4 с картите: http://pastebin.com/42qz7eqs . Получи се доста кратичка.
Здравейте, много си харесах решението на 6та задача и реших да го споделя
int n = int.Parse(Console.ReadLine());
int k = int.Parse(Console.ReadLine());
int rezult=1;
for ( int i = n ; n > k; n--)
{
rezult *= n;
}
Console.WriteLine(rezult);
Здравейте колеги,
аз нещо се обърках кой файл последно важи за домашното на циклите?
Това домашно от едитнатия пост горе е 1/2 от това, което аз тегля от даденото в линка на курса.
Някой може ли да даде информация? Благодаря :)
Здравей,
Ако домашното е с 19 задачи - имаш последното домашно.
Първото е било с 12 задачи.
Невероятно... Това е най-бързото решение, което съм виждал досега. Много хитро си се отървал от BigInteger
Мерси !