Другие языки программирования и технологии
Факториал парных чисел в С++ (VS 2010)
Как решить задание с выводом на экран факториал парных чисел? Просто факториал я вывести могу. А как быть с N!! Помогите исправить (дополнить) код: // Альфа_5.1.cpp: определяет точку входа для консольного приложения. /*Задание: Вариант 4. Сформировать список, состоящий из чисел входящих в последовательность n!! (факториал парных чисел) n определяет пользователь. n!! = 2 * 4 * 6 ...* n * / #include "stdafx.h" #include "math.h" #include "windows.h" #include <iostream> using namespace std; int n,i,res; int _tmain(int argc, _TCHAR* argv[]) { SetConsoleCP(1251); SetConsoleOutputCP(1251); cout << "---Орлов Вадим. 206 гр. 4 вар.---\n"; res = 1; cout << "\nЗдесь могла бы быть ваша реклама!!!\n"; cout << "\nВвведите n!! (например - 7), n = "; cin >> n; if (n < 0) cout << "n!! не существует:(\n "; if (n == 0) cout << "n!! = 1\n "; if (n > 0) { cout << "\nn!! = "; for (i=1; i<=n; i++) { int y=2; int fmod(int i, int y); //По идее это должно отвечать за определение парности числа. Хотя я не уверен. res = res*i; cout << i; if (i
// Visual C++ 2010 console application
#include <conio.h>
#include <iostream>
#include <windows.h>
#include <tchar.h>
using namespace std;
__int64 factorial(__int64 n);
void main()
{
system("color 9B");
setlocale(LC_CTYPE, "Russian_Russia.1251");
::SetConsoleTitle(_T("Рекурсивная функция. Вычисление двойного факториала"));
do
{
__int64 result = 0, n;
do
{
cout << endl << " ВЫЧИСЛИТЬ ФАКТОРИАЛ";
cout << endl << " Введите целое положительное чётное число от 2 до 32: ";
cin >> n;
cout << endl;
if (n < 2 || n > 32)
{
cout << endl << " ОШИБКА при вводе!!! ";
_getch();
system("cls");
}
}
while(n < 2 || n > 32);
if (n % 2 == 0)
{
result = factorial(n);
cout << endl << " " << n << "!! = " << result;
}
else cout << "Число должно быть чётным! ";
_getch();
system("cls");
}
while(true);
}
__int64 factorial(__int64 n)
{
return (n == 2) ? 2 : n * factorial(n - 2);
}
#include <conio.h>
#include <iostream>
#include <windows.h>
#include <tchar.h>
using namespace std;
__int64 factorial(__int64 n);
void main()
{
system("color 9B");
setlocale(LC_CTYPE, "Russian_Russia.1251");
::SetConsoleTitle(_T("Рекурсивная функция. Вычисление двойного факториала"));
do
{
__int64 result = 0, n;
do
{
cout << endl << " ВЫЧИСЛИТЬ ФАКТОРИАЛ";
cout << endl << " Введите целое положительное чётное число от 2 до 32: ";
cin >> n;
cout << endl;
if (n < 2 || n > 32)
{
cout << endl << " ОШИБКА при вводе!!! ";
_getch();
system("cls");
}
}
while(n < 2 || n > 32);
if (n % 2 == 0)
{
result = factorial(n);
cout << endl << " " << n << "!! = " << result;
}
else cout << "Число должно быть чётным! ";
_getch();
system("cls");
}
while(true);
}
__int64 factorial(__int64 n)
{
return (n == 2) ? 2 : n * factorial(n - 2);
}
Это называется двойной факториал
// Двойной факториал сноска на стр 83
// Справочник по специальным функциям с формулами, графиками и математическими таблицами
// Под редакцией М. Абрамовица и И. Стиган перевод с английского под редакцией В. А. Диткина и Л. Н. Карамзиной
// Москва "Наука" Главная редакция физико-математической литературы 1979
// (2n)!! = 2*4*6*...*(2n) = 2^n*n!
// (2n-1)!! = 1*3*5*...*(2n-1)
unsigned long long fak2(long x)
{
unsigned long long mul=1; while(x>1) mul*=x,x-=2; return mul;
}
// Двойной факториал сноска на стр 83
// Справочник по специальным функциям с формулами, графиками и математическими таблицами
// Под редакцией М. Абрамовица и И. Стиган перевод с английского под редакцией В. А. Диткина и Л. Н. Карамзиной
// Москва "Наука" Главная редакция физико-математической литературы 1979
// (2n)!! = 2*4*6*...*(2n) = 2^n*n!
// (2n-1)!! = 1*3*5*...*(2n-1)
unsigned long long fak2(long x)
{
unsigned long long mul=1; while(x>1) mul*=x,x-=2; return mul;
}
Тебе похоже повезло, и нужно вычислять не двойной факториал, а факториал ПАРНЫХ чисел. Для этого нужно будет их вначале еще и вычислить; -).Парными в математике называют простые числа, разделенные только одним (естественно четным) ) числом.
К примеру парные числа: 5,7,а также 11,13....
Тогда P(1)=1,P(2)=3,P(3)=5.
Факториал_парный (3)=1*3*5=15.
факториал_парный (4)=1*3*5*7=105.
К примеру парные числа: 5,7,а также 11,13....
Тогда P(1)=1,P(2)=3,P(3)=5.
Факториал_парный (3)=1*3*5=15.
факториал_парный (4)=1*3*5*7=105.
Похожие вопросы
- На сколько нулей оканчивается факториал заданного числа
- Написать на Турбо прологе программу вычисляющую факториал заданного числа
- как посчитать 365! (С++) Нужен алгоритм вычисления факториала больших чисел.
- информатика. вычислите факториал натурального числа n.
- Факториалы больших чисел и действия с ними
- VS 2010 C++ error LNK2019: ссылка на неразрешенный внешний символ
- Подскажите, пожалуйста, что лучше: С++ в MS VS 2010 или Qt C++. И почему?
- нужно написать программку на ассемблере, к-рая считает факториал числа n
- Что такое факториал? Помогите пожалуйсто с синтаксисом С++.
- Задание функции факториала в С++