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

Функция вычисляющая N!! - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Возвести любое число в любой степени от 1 до 10 http://www.cyberforum.ru/cpp-beginners/thread619951.html
Заранее спасибо! Возвести любое число в любой степени от 1 до 10
C++ Одномерный массив, найти минимальное и максимальное значение Помогите друзья очень прошу это задание на экзамен? Дан одномерный массив найти минимальное и максимальное значение? http://www.cyberforum.ru/cpp-beginners/thread619943.html
C++ Геометрическая задача
Задано множество точек на плоскости . Выбрать из них четыре разные точки, которые являются вершинами квадрата наибольшего периметра. Алгоритм понятен. Нужно взять четыре точки,допустим A,В,С и D. Проверить на равенство сторон AB,BC,CD,DA. Потом проверить равенство диагоналей AC и BD. Но как это сделать функцию и как ее потом использовать. Может кто-то подскажет другой алгоритм, более...
Найти наибольшую цифру в заданном числе C++
Заранее спасибо! Найти наибольшее цифру в заданном числе N
C++ Найти площадь фигуры, ограниченную линиями, заданными функцией у=х^2 и у=5+х/2 http://www.cyberforum.ru/cpp-beginners/thread619910.html
Условие: найти приблизительную площадь фигуры, ограниченную линиями, заданными функцией у=х^2 и у=5+х/2, разбивая отрезок измерения x на 10 частей и суммируя площади прямоугольников с основаниями равными 1/10 и высотой определямой значениями функциями в середи основания. высота прямоугольника в точки х = 5+х/2-х^2. я ничего не понимая в этих функциях помогите если не сложно
C++ Некорректный вывод текста Здравствуйте! Есть такая функция: wchar_t* GetPlayerInfo() { wchar_t buffer; ....... int player_scores = GetScores(player); int player_level = GetLevel(player); int player_kills = GetKills(player); int player_deaths = GetDeaths(player); swprintf_s(buffer, L"Level: %d / Scores: %d / Kills: %d / Deaths: %d", player_level, player_scores, player_kills, player_deaths); подробнее

Показать сообщение отдельно
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
09.07.2012, 17:06     Функция вычисляющая N!!
Цитата Сообщение от Catstail Посмотреть сообщение
if((n%2==0) && (j%2==0)) p=p*(double)j;
if((n%2!=0) && (j%2!=0)) p=p*(double)j;
я дико извиняюсь... А чем разница??
p=p*(double)j;
в обоих строках
нельзя сделать проще
По крайней мере понятней алгоритм( и быстрее ветвлений нет)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
double Fact2(int n);
{
   double p=1.0;
 int j
 if(n%2)
    j=1;
 else 
    j=2;
 
for(;j<=n;j+=2)// отсчет с шагом 2 при нечетном 1 3 5 при четном 2 4 6
   {
     p=p*(double)j;
   }
   return p;
}
можно вообще так
j=2-(n%2)
при нечетном числе (n%2)=1
j=2-1=1
при нечетном числе (n%2)=0
j=2-0=2

соответственно функция выглядит так
C++
1
2
3
4
5
6
7
double Fact2(int n);
 {
   double p=1.0;
 for(int j=2-(n%2);j<=n;j+=2)// отсчет с шагом 2 при нечетном 1 3 5 при четном 2 4 6
        p=p*(double)j;
     return p;
}
 
Текущее время: 19:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru