Top.Mail.Ru
Ответы

Как записать формулу на с++?

как мне записать формулу в с++:
А (в степени n)=2(в степени n)*n! (n факториал)/ n (в степени n)

пожалуста без лишних сообщей только формула

По дате
По рейтингу
Аватар пользователя
Профи
15лет

Чтобы записать такую формулу нужно сначала определить функцию возврата факториала числа.
Это можно сделать например через рекурсию, как-то так:

#include <math.h>// чтобы можно было pow() вызывать

int factorial ( int n )
{
if ( n < 1 ) return n ;
else
return n * factorial ( n - 1 ) ;
}

int main ()
{
int a, n ;
...
pow ( a, n ) = pow ( 2, n ) * factorial (n) / pow ( n, n ) ;
...
return 0 ;
}

Аватар пользователя
Ученик
15лет

pow(A, n) = (pow( 2,n )) * ((fakt) / (pow( n, n ))
Здесь степень обозначается число в степени вычисляется функцией pow(), её первый параметр переменная, которую надо возвести в степень, а второй - сама степень))) . Переменная fakt хранит значение факториала, которое нужно вычислить в отдельном месте программы вот таким образом:

fakt = 1; //Эта строчка обязательна, потому что иначе результат будет не правильным (при умножении на ноль получится ноль или просто получится другое число)
for( int i = 1; i <= n_fakt; i++ ) fakt = i * fakt; // Здесь вычисляется цикл, счетчик первоначально равен одному, потому что опять же умножение на ноль. n_fakt ограничивает наш цикл, потому что тому, чему она равна, будет равно повторение цикла а соответственно и вычисление факториала.
Дальше опять находишь степень n числа n функцией pow. Вот так будет выглядеть программа, вычисляющая эту формулу (на всякий случай)

#include<math.h>
#include<conio.h>
#include<iostream.h>

int faktorial(int fakt) //Функция вычисляющая факториал
{
int chislo = 1;
for( int i = 1; i <= fakt; i++ ) chislo = i * chislo;
return chislo; // Возвращаем, чтобы приравнять значение
//этой функции переменной
}

int main()
{
int znach; // Переменная, для хранения значения результата фукции
int A, n;
int p; // хранит значене факториала
cin >> A;
cin >> n;
p = faktorial(n);
znach = pow( 2,n ) * (p / pow( n, n ));
if( znach == pow( A, n ) )
cout << znach << "Является решением уравнения";
else
cout << "Уравнение не имеет решения";
return 0;
}

Аватар пользователя
Ученик
15лет

Для факториала сначала нужно написать функцию вида:
int fact(int i)
{
if(i==0)
return i;
else
{
i=i*fact(i-1);
return i;
}
}
Сама формула примет вид:
pow(A,n)=pow(2,n)*fact(n)*(fact(n)/pow(n,n))
Чтобы компилятор не ругался на pow,подключи библиотеку:
#include <math.h>
Если с math будут косяки, то:
#include <iostream.h>
Косяки исчезнут



Видео по теме