Loading...
stanchev1 avatar stanchev1 122 Точки
Best Answer

Според мен най-добре да изгледаш следните материали, където лекторите решават точно тази задача https://softuni.bg/trainings/resources/video/10464/video-screen-4-october-2016-group-1-simeon-sheitanov-programming-fundamentals-september-2016 и другото видео е това : https://softuni.bg/trainings/resources/video/8808/video-screen-26-may-2016-svetlin-nakov-programming-fundamentals-may-2016 

Успех, дано съм помогнал.

 

0
peponderat avatar peponderat 5 Точки

Успя , с дебъгера ги чатнах :D

0
Ordnata avatar Ordnata 7 Точки

Супер полезно е първото видео с обратния for и акцента за  long.

0
ThePSXHive avatar ThePSXHive 436 Точки

Горните линкове са полезни, но все пак ще поясня как бихме могли да я решим по доста праволинеен начин, и ще използвам това решение. Най-напред искаме да се уверим, че размерът на масива ще бъде достатъчен за по-големи стойности. Много грешки в този тип задачи произтичат от избор на тип данни, които притежават по-ниска граница от изискваната в системата. Затова ще използваме long

long number = long.Parse(Console.ReadLine());
long steps = long.Parse(Console.ReadLine()); 

Понеже при изчисленията ще се връщаме назад в масива, със steps обозначаваме броят връщания, които трябва да извършим. Следваме условието и инициализираме първият елемент със стойност единица

sequence[0] = 1;

В този момент, състоянието на масивът е следното (с индексите горе и стойностите долу)

 0  1  2  3 
[1][0][0][0]

Идеята в случая е да запълваме всяка следваща i-th позиция като се връщаме steps на брой пъти назад в масива. Докато се връщаме назад, събираме стойностите на елементите, започвайки непосредствено от последният инициализиран елемент (в кода, това е last). Започваме от позиция i = 1, защото в началото на връщането, първият елемент (с индекс 0) винаги ще бъде инициализиран с някаква стойност. Искаме връщането назад да се осъществява коректно, а това включва (a) точно steps брой връщания, и (b) връщане, при което няма да излезем извън рамките на масива. За (a) изброяваме връщанията като използваме toSteps, който се явява просто брояч на текущия брой извършени връщания. За (b) поставяме индекса на първия елемент (0) като крайна точка на връщанията. След това комбинираме тези две условия, (a) и (b). Единственото, което остава, е да итерираме назад в масива докато изброяваме броят стъпки, които са зададени по условие.

1
29/01/2017 10:41:20
peponderat avatar peponderat 5 Точки

Благодаря за изчерпателния отговор!

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