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

Циклы: вычислить факториал числа

19.06.2011, 19:58. Показов 48712. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1.Надо написать программу которая будет вычислять факториал числа.я вот пробовал чёт не получается:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "stdafx.h"
#include <stdio.h>
#include "conio.h"
#include <iostream>
 
int _tmain(int argc, _TCHAR* argv[])
{{
    int factor,digit,count;
    printf("Vvedite celoe cheslo");
    scanf("%d",&digit);
    factor=1;
    for(count=1;count<factor;count++)
    {
     factor*=count;
 
    }
    printf("Faktorial chisla %d raven %d",digit,factor);
}
Пришлите плиз код полностью.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.06.2011, 19:58
Ответы с готовыми решениями:

Циклы: вычислить факториал числа циклом while
Добрый вечер, помогите пожалуйста написать программу с таким заданием: Сложить программу с использованием цикла While нахождение суммы ряда...

Вычислить факториал числа
Требуется по заданному числу 1&lt;=N&lt;=12 посчитать его факториал. Учтите, что факториал растет очень бысто и уже при N = 13 результат выйдет...

Вычислить факториал целого числа
1. Вычислить факториал целого числа.

14
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
19.06.2011, 20:03
C
1
2
3
4
5
6
7
8
9
10
11
12
13
int _tmain(int argc, _TCHAR* argv[])
{
    int factor,digit,count;
    printf("Vvedite celoe cheslo");
    scanf("%d",&digit);
    factor=1;
    for(count=1;count<=digit;count++)
    {
        factor*=count;
    }
    
    printf("Faktorial chisla %d raven %d",digit,factor);
}
1
 Аватар для Mиxaил
542 / 447 / 162
Регистрация: 10.12.2009
Сообщений: 1,857
19.06.2011, 20:05
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
long long Factor ( int n )
{
    if ( ( n == 1 ) || ( n == 0 ) )
        return 1;
    else
        return ( n * Factor ( n - 1 ) );
}
 
int main( int argc, char * argv[] )
{
    std::cout << Factor ( 4 ) << std::endl;
    std::cin.get();
    return 0;
}
1
298 / 298 / 150
Регистрация: 07.05.2011
Сообщений: 592
19.06.2011, 20:05
VC не установлен, есть G++/Code::Blocks
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <stdio.h>
// Проверено G++/Code::Blocks
 
int main()
{
    int digit,count;
    long factor;
 
    printf("Vvedite celoe cheslo");
    scanf("%d",&digit);
    factor=1;
    for(count=1;count<=digit;count++)
        factor*=count;
    printf("Faktorial chisla %d raven %d",digit,factor);
    return 0;
}
1
0 / 0 / 0
Регистрация: 19.06.2011
Сообщений: 6
19.06.2011, 20:06  [ТС]
Спасибо Большое ))
0
0 / 0 / 0
Регистрация: 19.06.2011
Сообщений: 8
19.06.2011, 20:10
Mиxaил,
Цитата Сообщение от Mиxaил Посмотреть сообщение
long long Factor ( int n )
а зачем здесь 2 раза long?
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
19.06.2011, 20:13
Цитата Сообщение от mpg756 Посмотреть сообщение
Mиxaил, а зачем здесь 2 раза long?
Чтобы большее число влезло.
Очевидно же.
2
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
19.06.2011, 20:14
mpg756, это от жадности
long long - это нестандартный тип, размер которого обычно 64 бита. Стандартный тип int64_t, к сожалению, поддерживается тоже далеко не всеми компиляторами. Есть ещё и другие расширения, например __int64
2
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
22.03.2016, 09:01
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
long long Factor ( int n )
{
    if ( ( n == 1 ) || ( n == 0 ) )
        return 1;
    else
        return ( n * Factor ( n - 1 ) );
}
 
int main( int argc, char * argv[] )
{
    std::cout << Factor ( 4 ) << std::endl;
    std::cin.get();
    return 0;
}
а теперь попробуйте вычислить 1000!
ответ 1000! = 0
не работает Ваш код!
0
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
22.03.2016, 09:32
Цитата Сообщение от _Faradey Посмотреть сообщение
не работает Ваш код!
А кто-то обещал что код будет работать для любых чисел? У вас-то вообще никакого кода нет - ни для 10! ни для 1000!, ни для 1010 !
0
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
22.03.2016, 09:41
А не подскажете, как вычислить (10е10)! не поделитесь кодом? )
0
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
22.03.2016, 09:57
Не поделюсь. Любая [почти] программа работает с параметрами в ограниченном диапазоне, так что высказывания типа "не работает с 1000!" - пустышки. А у Вас с 1000! работает? Если "Да", тогда не работает с 1010! и нафига было встревать со своими 1000! ?

Люди написали работающий пример, которого ТС достаточно. Но находятся"вумники", желающися себя показать и пишут про 1000!
0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
23.03.2016, 03:27
Цитата Сообщение от _Faradey Посмотреть сообщение
А не подскажете, как вычислить (10е10)! не поделитесь кодом? )
А не подскажете, зачем это может понадобиться — вычислять факториал, значение которого содержит более 300 миллионов цифр? А код-то не проблема, только не через циклы, а с использованием спец. библиотек
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <gmp.h>
#include <mpfr.h>
 
int main()
{
    mpfr_t x, s;
    mpfr_init2(x,50);
 
    mpfr_set_d(x, 10e10, MPFR_RNDD);
    mpfr_init2(s,50);
    mpfr_set_d(s, 1.0, MPFR_RNDD);
 
    mpfr_add(x, x, s, MPFR_RNDD);
    mpfr_gamma(s, x, MPFR_RNDD);
    mpfr_out_str (stdout, 10, 0, s, MPFR_RNDD);
    putchar ('\n');
 
    mpfr_clear (s);
    mpfr_clear (x);
 
    return 0;
}
(10·1010)! = 2.0985767·10323228496
1
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
23.03.2016, 09:02
Спасибо! Я просто недавно пересел на С++, до этого программил в матлабе и вольфраме, видел как-то тему на хабре, спор был, кто быстрее вычислит факториал вольфрам математика или с++, все склонялись к с++ Вот и стало интересно. Конечно это нигде не пригодится, как и вычисление мат. констант до милионного знака ) тем не менее идет гонка, кто больше знаков вычислит в числе пи
0
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
23.03.2016, 13:23
_Faradey, а попробуй на С+ написать программу, которая точно вычисляет факториалы 1000-5000 и обгоняет вольфрам. Думаю, ничего не получиться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.03.2016, 13:23
Помогаю со студенческими работами здесь

Вычислить факториал натурального числа
С или С++ 1. Вычислить n! = 1*2*3*…*n. N – вводится. П.5.16.Правил Запрещено создавать темы с множеством вопросов во всех разделах,...

Как вычислить факториал большого числа?
Как возвести 1000 в квадрат. Проблема заключается в том, что ни одна строка не вместит в себя число длиной 2568 символов. Я полагаю, что...

Вычислить факториал числа через оператор do while
Итак, задача следующая: Написать программу вычисления факториала целого положительного числа N! Решить эту задачу в двух вариантах: с...

Вычислить факториал заданного целого числа
Составить блок схему алгоритма и программу согласно условию задачи. Вычислить факториал заданного целого числа. Факториал числа N...

Вычислить факториал натурального числа n из отрезка [1;20]
Создайте программу, вычисляющую факториал натурального числа n из отрезка , которое пользователь введёт с клавиатуры. Если число будет...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru