Programming Basics\Arrays\Last K numbers Sum
Здравейте,
Реших всичко от лекцията, но тази задача "Last K numbers Sum" ми скъса нервите. Не мога да измисля сумирането. Някой би ли го обяснил ?
Здравейте,
Реших всичко от лекцията, но тази задача "Last K numbers Sum" ми скъса нервите. Не мога да измисля сумирането. Някой би ли го обяснил ?
Защо не пробваш с един for - loop който да обхождаш масива отзад на пред?
Пример:
ulong sum = 0;
for(int i = arr.Length - 1; i >= arr.Length - K; i--)
{
sum += arr[i];
}
Успех
В крайна сметка се получи с налучкване. Иначе бях в правилната посока. Сега ще дебъгвам да разбера защо, но това долу работи коректно. Благодаря за подкрепата ! Бяха дълги 3 часа :)
int n = int.Parse(Console.ReadLine());
int k = int.Parse(Console.ReadLine());
var array = new long[n];
array[0] = 1;
for (int current = 1; current < n; current++)
{
var start = Math.Max(0, current - k);
var end = current - 1;
long sum = 0;
for (int i = start; i < n; i++ )
{
sum +=array[i];
}
array[current] = sum;
}
Console.WriteLine(string.Join(" ", array));
Лично за мен тази задачка не беше много на мястото си още в самото начало за масиви без да сме им свикнали. Като стигнах до нея и не успях да измисля какво се иска от нас, си виках леле мале, къде се намирам. Задачките след нея ми бяха доста по-лесни от тази.
За да ти даде пълните 100 точки направи си масива да ти е от тип long[] и сумата ти също да е от тип лонг, като след нулата добавиш задължително едно главно L, иначе ще стане int, а ако го добавиш това L, а оставиш масива int[] ще ти даде грешка заради несъвместимите типове. Ако сумата ти е ulong трябва да напишеш ulong sum = 0UL; ,но в такъв случай трябва и масива ти да е ulong, т.е. да не съдържа отрицателни числа, което не е изрично опоменато в условието и може да ти изгърми някой тест.
Ето тези два реда напиши вместо твоите и го пробвай така в judgeto.
long[] sequence = new long[n];
long sum = 0L;
Best answer :))) https://pastebin.com/CdTFthze
Кратко решение, в което използвам Skip и Sum:
https://pastebin.com/m9xj2wx5