Никита Сальников, рекурсивная - это наивная.
1. Берём определение.
fib(1) = 1
fib(2) = 1
fib(n) = fib(n-1) + fib(n-2)
2. Переводим в код "как есть"
int Fib(int n) {
if(n == 1 || n == 2)
return 1;
return Fib(n-1) + Fib(n-2);
}
Эта реализация неэффективна. (тк мы многократно вычисляем одно и то же).
Первый очевидный вариант - кэшировать результат.
Менее очевидный вариант - тремя переменными (как тут)
Никита Сальников,
> Про чистоту и красоту кода мне пока наверное рано думать.
Никогда не рано. Это очень полезный навык.
Вообще, чтобы понимать такие задачи, лучше сначала самому попробовать решить, попутно улучшая производительность. (например в примере с числами фибоначи надо было пройти путь от рекурсивной реализации, к версии с кэшированием результата, и вот к финальной с тремя переменными).
PS: Программирование лучше изучать отдельно от олимпиадных задач.
Алексей Аминодов-Борисов, согласен на счёт совмещения навыков - это всегда плюс. (Видел статью на хабре, где такой подход к повышению своей ценности, как специалиста рассматривался). Сам про дизайн мало знаю, по тому не стал его упоминать.
А про раскладку бирмана не подскажу. Знаю, что на маке из предустановленных есть что-то похожее, но у вас, видимо, не мак.
coderisimo, из бесплатного Visual Studio community (если на винде).
Если не на винде, то Monodevelop или Visual studio for mac, VS Code (с плагином).
Ещё есть Rider от Jetbrains
Визуальное редактирование формочек только в виндовой студии есть (и виндовом райдере). Может скоро поддержку Avalonia завезут.
Тимофей Гусев, видно, что вы не очень опытный в плане программирования, но вот ещё немного порефакторил код (оставил комментарии, почему именно так). Ссылка на sharplab.io
Это не то же самое, В первом же случае когда live >= 150 получится результат будет 1.545, что явно не 1.6, хотя в принципе достаточно легитимный вариант решения. Тут, судя по всему, хотят менять размер хилбара
rad95, а в чём смысл проверять на дубликаты? Вы же не по имени громкость регулируете, а по PID. Или там есть какая-то хитрая группировка одноимённых процессов, чтобы регулировать все сразу?
1. Берём определение.
fib(1) = 1
fib(2) = 1
fib(n) = fib(n-1) + fib(n-2)
2. Переводим в код "как есть"
Эта реализация неэффективна. (тк мы многократно вычисляем одно и то же).
Первый очевидный вариант - кэшировать результат.
Менее очевидный вариант - тремя переменными (как тут)