Вычислить факториал - C (СИ) (72693)

Узнай цену своей работы

Формулировка задачи:

Факториал считает правильно, а вот со степенью какая-то беда.
#include <stdio.h>
#include <math.h>
 
int main()
{
    double chisl, f1, f2;
    int n,x,y, res;
    int i = 1;
    printf("ведите число n:");
    scanf("%lf",&chisl);
    f1 = 1;

int power(int t, int k) // возведение t в степень k
{
    t=n;
k=n;
  int res = 1;
  while (k) 
      {
    if (k & 1) 
           res *= t;
    t *= t;
    k >>= 1;
      }
}
 printf("n^n = %.d\n", res);

    if (chisl >= 0)
    {
        for (f2 = 2; f2 <= chisl; f2++)
        {
            f1 *= f2;
        }
        printf("%.f! = %.f\n", chisl, f1);
    }
    else
    printf("„исло не может быть меньше нул¤!\n");
return 0;
}
Результат:
ведите число n:5
n^n = 134514059
5! = 120
Попробовал так:
#include <stdio.h>
#include <math.h>
 
int main()
{
    double chisl, f1, f2;
    int n,res,x,y;
    int i = 1;
    printf("‚ведите число n:");
    scanf("%lf",&chisl);
    f1 = 1;

x=n;
y=n;
 
printf ("powf  : %.20f\n", powf (x, y) );

    if (chisl >= 0)
    {
        for (f2 = 2; f2 <= chisl; f2++)
        {
            f1 *= f2;
        }
        printf("%.f! = %.f\n", chisl, f1);
    }
    else
    printf("Число не может быть меньше нуля!\n");
return 0;
}
При компиляции говорит:
 undefined reference to `powf'
Если в powf (x, y) ) подставляю числа, например powf (4, 4) ) то все ок считает.

Решение задачи: «Вычислить факториал»

textual
Листинг программы
long pow_n(int n) {
    if(n>0) {
        long pow=n;
        long k=n;
        while(--k) 
            pow*=n;
        return pow;
    } else
        return 0;
}

Объяснение кода листинга программы

В данном коде представлена функция, которая вычисляет факториал числа. Список действий в коде:

  1. Проверка условия: Если число n больше нуля, то переходим к следующему шагу, иначе возвращаем 0.
  2. Инициализация переменных: Переменная pow инициализируется значением n, а переменная k инициализируется значением n.
  3. Цикл: В цикле значение переменной k уменьшается на единицу, пока не станет равным нулю.
  4. Вычисление факториала: В каждой итерации цикла значение переменной pow умножается на n.
  5. Возврат результата: После окончания цикла возвращается значение переменной pow.
  6. Отрицательный вариант: Если число n меньше или равно нулю, то возвращается 0. В результате выполнения данного кода будет вычислен факториал числа n.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.267 из 5