Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 23.02.2022
Сообщений: 16

Вычисление факториала заданного числа

23.02.2022, 11:53. Показов 1786. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вычислить величину y, равную n!

Не понимаю почему код не считает.

И если не сложно добавить обработку некорректного пользовательского ввода, обработку ошибочных
допущений и ошибок посредством исключений.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
    int fn, n, y, i;
    std::cin >> n;
    fn = 1; y = 1;
    if (n < 0)
    {
        i = 1;
    }
    for (i = 1; n);       // ; после n, просто тут ставится смайлик
    { 
        fn *= i; 
    }
    for (i = 1; fn);          // ; после fn, просто тут ставится смайлик
    {
        y += fn;
    }
    {
        for (i = 1; n);    // ; после n, просто тут ставится смайлик
 
        if (i % 2 == 0) fn *= i; else fn = fn * (i + 1);
    }
    for (i = 1; fn);    //  ; после fn, просто тут ставится смайлик
    {
        y += fn;
    }
    std::cout << y << endl;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.02.2022, 11:53
Ответы с готовыми решениями:

Вычисление факториала заданного числа
Написать программу для вычисления факториала числа: n!=1*2*3*.....n. Использовать специальный класс, полем которого является число n, а...

Вычисление факториала числа
Маленькая программа вычисляет факториал числа, введенного пользователем, по формуле N! = N * (N – 1)!, где 0 != 1, и выводит его на экран. ...

Вычисление факториала числа
Написать программу, которая вычисляет факториал введенного с клавиатуры числа. (Факториалом числа n называется произведение целых чисел от...

6
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
23.02.2022, 12:26
Лучший ответ Сообщение было отмечено Ezya как решение

Решение

Цитата Сообщение от Ezya Посмотреть сообщение
// ; после n, просто тут ставится смайлик
То-то и оно.
Вы не выучили синтаксис оператора for.
После закрывающей скобки идет тело оператора.
Если поставить точку с запятой, то это будет означать, что тело состоит из пустого оператора.
А все остальное не принадлежит циклу.
Цитата Сообщение от Ezya Посмотреть сообщение
for (i = 1; n);
А это еще раз подтверждает, что Вы не выучили синтаксис оператора for:
C++
1
for(i=1;i<=n;i++){
В целом, много лишнего:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int main()
{
    int n;
    std::cin >> n;
    std::cin.get();
    if (n < 0)
        n=0;
    long long y = 1L;
    for (int i = 2; i<=n;i++)
        y *= i; 
    std::cout << y << std::endl;
    std::cin.get();
    return 0;
}
2
 Аватар для Recrut_rf
383 / 326 / 65
Регистрация: 14.10.2014
Сообщений: 1,394
23.02.2022, 12:44
Лучший ответ Сообщение было отмечено Ezya как решение

Решение

Цитата Сообщение от Ezya Посмотреть сообщение
// ; после n, просто тут ставится смайлик
эта фраза ввела меня в ступор - подумал, может опечатка или специально так задумывалось?
Но как заметил уважаемый zss, - это синтаксическая ошибка


В общем Ezya, сегодня, вроде как праздник, так что - держите
вычисление факториала числа

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
using namespace std;
 
 
int factorial(int value)
{
    if (value <= 1) 
        return 1;   
 
    return value * factorial(value - 1);            
}
 
int main(void)
{   
    int res = factorial(5);
    cout << res << endl;        
    
    return 0;
}
Только это самый плохой (с точки зрения производительности) способ вычисления факториала.
2
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
23.02.2022, 13:14
Цитата Сообщение от Recrut_rf Посмотреть сообщение
Только это самый плохой (с точки зрения производительности) способ вычисления факториала.
Ну как не согласиться!
C++
1
2
3
4
5
6
7
int fact(int n)
{
   int f = 1;
  for(int i=2; i<=n; i++)
      f*= i;
  return f;
}
С праздником!
2
0 / 0 / 0
Регистрация: 23.02.2022
Сообщений: 16
23.02.2022, 15:44  [ТС]
Я с for понял что налажал, но вот мне нужно этот код исправить что бы он выполнял такую задачу Вычислить величину y, равную n!, а не просто выдавать факториал числа. Извините если слишком нагло, я этого не понимаю, а нам ещё и практику раньше времени влупили
0
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
23.02.2022, 16:18
Лучший ответ Сообщение было отмечено Ezya как решение

Решение

Ezya, а почему Вы считаете, что в варианте, который я привел в сообщении #2, не вычисляется y = n! ?????
1. объявляется n.
2. вводится n
3. объявляется y
4. вычисляется y
5. выводится y
Что не так?
Правил я именно Ваш код.
0
0 / 0 / 0
Регистрация: 23.02.2022
Сообщений: 16
23.02.2022, 16:25  [ТС]
zss, Извините, я просто не понимал вопроса задачи, мне казалось там надо как-то между собой числа додавать и т.д. простыми словами делать замудренно, в таком случаи ещё раз прошу прощения и благодарю вас
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.02.2022, 16:25
Помогаю со студенческими работами здесь

Вычисление факториала числа N
Что надо написать в пропущенной строке? setlocale(LC_ALL, &quot;Russian&quot;); int N; int P=1; cout&lt;&lt;&quot;Input N: &quot;; ...

Вычисление факториала числа n
Перевести программу из Pasсal в C++ Нашёл программу, вычисляющую факториал n-ого числа, написанную на паскале: program Factorial;...

Вычисление факториала числа
Надо написать программку на С++ которая вычисляет факториал числа n (факториал обозначается как n!). числа n в диапазоне от 1 до 12...

Вычисление факториала вещественного числа
Помогите пожалуйста сделать на С++ код для вычисления факториала дробного(не целого) числа , например 1.4

Вычисление факториала большого числа
Собственно мне нужно было создать программу которая решает пример В нем есть вычисление факториала, и значение которое нужно вычислить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru