Форум программистов, компьютерный форум CyberForum.ru

Дано натуральное число n. Вычислить значение формулы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Переместить элементы матрицы равные 0 в конец строки, сохранив порядок следования остальных элементов http://www.cyberforum.ru/cpp-beginners/thread1658408.html
Проблема следующая : дано двумерный массив надо переместить элементы которые равны 0 в конец строки при этом последовательность следования оставшихся элементов должна сохраниться. Пример : дано масив : 0123 надо сделать : 1230 1032 1320 Прошу строго не судить потому, что только начал изучать программирование, в частности С++ Вот...
C++ Как проще всего разбить строку на ряд строк по разделителю? Пусть например есть строка "abc;dasfadfa;asfadsfv". Надо разбить ее соответственно на 3 строки по разделителю ";". Как это проще всего реализовать? http://www.cyberforum.ru/cpp-beginners/thread1658405.html
C++ Зачем нужен полиморфизм
читал про то что такое полиморфизм, виртуальные методы и тд, вот промер из статьи про виртуальный диструктор class base { public: virtual ~base() { cout << "Вызван деструктор базового класса base\n"; } };
C++ Перехват функции
Приветствую всех. Есть хорошая статья по перехвату API функции. http://habrahabr.ru/post/90377/ Но есть проблема. Как мне сделать, если я хочу перехватить функцию из другой программы? Тоесть. Есть exe файл. Я из него выдрал адрес начала функции через ollydbg. Далее как сделать, чтобы не со своей прогой работа шла, а именно с тем процессом, опираясь на статью. Добавлено через 6 минут...
C++ Найти номера первого максимального и последнего минимального элемента http://www.cyberforum.ru/cpp-beginners/thread1658373.html
Данное целое число N и набор из N целых чисел. Найти номера первого максимального и последнего минимального элемента из этого набора и вывести их в указанном порядке.
C++ Разница некоторых методов thread Не смог найти подробное описание на msdn описание следующих методов: reset detach ~thread ext cancelJob Буду признателен за объяснение. В программе было thread.join(); thread.reset(); подробнее

Показать сообщение отдельно
8-BITOV
513 / 455 / 83
Регистрация: 05.05.2014
Сообщений: 1,077
09.02.2016, 17:41     Дано натуральное число n. Вычислить значение формулы
Цитата Сообщение от SpBerkut Посмотреть сообщение
Формально, набросок решения 8-BITOV правильный, но уже при n = 4 выдаст неверный ответ (отрицательный) из-за переполнения типа.
Да, совершенно правильно. Чтобы получить хоть мало-мальски приемлемые результаты, надо использовать double.
Однако, позвольте и мне слегка покритиковать ваше решение.
1. k*(k+1)*...*k2 вы считаете как (k2)! / (k-1)! Но это чудовищно неэффективно (хотя и правильно формально). Плюс к тому, использование естественных формул может увеличить диапазон "до переполнения". Не намного, скажем, до 16, но все-таки.
2. Рекурсивное вычисление факториалов. Их так только в школе считают. Да, это классическое рекурсивное определение. Да, рекурсия - это вообще красиво. Да, педагогам, объясняющим рекурсию, этот факториал самим Господом был подарен. Но одно из правил программиста-практика - "Можно обойтись без рекурсии? Обойдись!"
3. Это уже замечание к нам обоим. Вычисление очередного члена в задаче 1 можно делать короче (эффективнее). А именно, при переходе от к-того к к+1-му разделить на к и умножить на (к*к+1)*...(к+1)(к+1)
Удачи!
 
Текущее время: 04:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru