|
16 Кб |
|
| Не могу с 17-ом справиться. Прикрепил файл в нем задания. Немогу эту задачу правильно сформулировать на си. Я думаю что тут нужно сначала в нормальный вид уравнение преобразовать. Пожалуйста помогите решить, знаю тут не столько си сколько математики, поэтому прошу. | |
|
|
|
|
|
|
|
для: ols
(22.02.2007 в 16:14)
| | И что тут сложного? Тут посчитать надо или как? Тебе надо алгоритм вычисления факториала и степени? Пожалуйста:
Факториал:
Делаем например рекурсию. Если требуется 0! или 1!, то возвращаем 1, иначе: факториал предыдущего умножить на текущее:
int Fuck_to_real(int n)
{
if((n==1)||(n==0)return 1;
else return n*Fuck_to_real(n-1);
}
|
Таким образом при вызове a=Fuck_to_real(n); получишь n!
Степень:
Ничего сложного. Даю алгоритм только для положительной степени(тут только это требуется)
float instep(float n,int step)
{
if(step==1)return n;
else return instep(n,step-1)*n
}
|
При вызове a=instep(n,k); получишь n^k | |
|
|
|
|
|
|
|
для: alex19921992
(22.02.2007 в 16:52)
| | Да, но только задача состоит в том что при решении задачи нужно использовать оператор for | |
|
|
|
|
|
|
|
для: ols
(25.02.2007 в 18:29)
| | Пожалуйста:
/* факториал: */
int fact(int n)
{
int r = 1;
if(n > 0)
{
for(int i = 1;i <= n;i++)
{
r *= i;
}
}
else
{
return -1;
}
return r;
}
/* степень */
float step(float n,int s)
{
if( s == 0 ) return 1;
float res = 1;
for(int i = 0;i<s;i++)
{
res *= n;
}
return res;
}
|
За оптимальность не ручаюсь, но оно работает | |
|
|
|