Loading...
ViValDam avatar ViValDam 15 Точки

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 ?  , освен че има толкова нули накрая, колкото е резултата !smile

А ,вие какво измислихте ?

2
akaynarov avatar akaynarov 13 Точки

Невероятно... Това е най-бързото решение, което съм виждал досега. Много хитро си се отървал от BigInteger

1
ViValDam avatar ViValDam 15 Точки

Мерси ! smile

1
kisyova avatar kisyova 13 Точки

Здравейте :) ето моето решение за задача 17, но не работи за отрицателни стойности :/ някакви съвети? http://pastebin.com/RHR2aTB4

0
ViValDam avatar ViValDam 15 Точки

Ето го и моето на 17, ако ти помогне нещо ще се радвам, мозъкът ми е вече на друга вълна surprised не помня какво съм правила:

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");
}

 

3
Sekklow avatar Sekklow 3 Точки

Късно, но все пак: използвай Math.Abs() когато си парсваш input. GCD  се дефинира по стойност, няма значение множителя (+1 или -1 за отрицателни).

1
ViValDam avatar ViValDam 15 Точки

В задачата се иска да се използва Алгоритъма на Евклид , така че и на двамата ви решенията не отговарят на изискванията .

Eто видеото ,което аз гледах за да разбера алгоритъма и напиша кода за него, дано ви помогне  :

http://www.youtube.com/watch?v=fwuj4yzoX1o

1
kisyova avatar kisyova 13 Точки

Има различни начини да решиш задачата с Алгоритъма на Евклид. Всеки си има своята логика. Благодаря за съветите :)

1
ViValDam avatar ViValDam 15 Точки

Problem 19.** Spiral Matrix  

И аз приключих с това домашно и преминавам към следващото smile

Къде изчезнаха всички ? Сигурно вече се подготвят за изпита .


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();
}
 

1
Mart1n_Vatev avatar Mart1n_Vatev 5 Точки

И от мен едно решение на  Problem 19.**Spiral Matrix .Мисля че по кратко и ясно не съм срещал.

1
TonySt avatar TonySt 1 Точки

Последно кое е домашното ?

0
Vacheva avatar Vacheva 154 Точки

Домашното, което можеш да изтеглиш от системета е актуално.

0
IvanStoyanov avatar IvanStoyanov 68 Точки

Здравейте колеги! Искам да попитам за 4-та задача така важи ли решението http://pastebin.com/rKSDJEhB както съм го написал? Output-ът е по условието и съм спазил изискванията - 2 for и switch. Искам да знам дали решението ми е добро.

2
Vacheva avatar Vacheva 154 Точки

Здравей, след като "Output-ът е по условието и съм спазил изискванията - 2 for и switch" и резултата е верен - решението ти е идеално!

0
Smoket avatar Smoket 1 Точки

Много добре се е получило. Даже замених символите направо с кодовете им и пак стана.

0
Vasilsk avatar Vasilsk 109 Точки

Ето и моят вариант за задача 4 с картите: http://pastebin.com/42qz7eqs . Получи се доста кратичка.

1
pdechkova avatar pdechkova 95 Точки

Здравейте, много си харесах решението на 6та задача и реших да го споделя laughing

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
mesechina avatar mesechina 112 Точки

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

аз нещо се обърках кой файл последно важи за домашното на циклите?
Това домашно от едитнатия пост горе е 1/2 от това, което аз тегля от даденото в линка на курса.
Някой може ли да даде информация? Благодаря :)

0
Vacheva avatar Vacheva 154 Точки

Здравей,

Ако домашното е с 19 задачи - имаш последното домашно. 

Първото е било с 12 задачи. 

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