0 / 0 / 0
Регистрация: 19.06.2011
Сообщений: 6
1

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

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

Author24 — интернет-сервис помощи студентам
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2011, 19:58
Ответы с готовыми решениями:

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

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

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

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

14
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
19.06.2011, 20:03 2
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
542 / 447 / 162
Регистрация: 10.12.2009
Сообщений: 1,857
19.06.2011, 20:05 3
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 4
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  [ТС] 5
Спасибо Большое ))
0
0 / 0 / 0
Регистрация: 19.06.2011
Сообщений: 8
19.06.2011, 20:10 6
Mиxaил,
Цитата Сообщение от Mиxaил Посмотреть сообщение
long long Factor ( int n )
а зачем здесь 2 раза long?
0
Higher
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
19.06.2011, 20:13 7
Цитата Сообщение от mpg756 Посмотреть сообщение
Mиxaил, а зачем здесь 2 раза long?
Чтобы большее число влезло.
Очевидно же.
2
Эксперт С++
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
19.06.2011, 20:14 8
mpg756, это от жадности
long long - это нестандартный тип, размер которого обычно 64 бита. Стандартный тип int64_t, к сожалению, поддерживается тоже далеко не всеми компиляторами. Есть ещё и другие расширения, например __int64
2
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
22.03.2016, 09:01 9
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
2663 / 2238 / 240
Регистрация: 03.07.2012
Сообщений: 8,141
Записей в блоге: 1
22.03.2016, 09:32 10
Цитата Сообщение от _Faradey Посмотреть сообщение
не работает Ваш код!
А кто-то обещал что код будет работать для любых чисел? У вас-то вообще никакого кода нет - ни для 10! ни для 1000!, ни для 1010 !
0
5 / 5 / 2
Регистрация: 13.10.2015
Сообщений: 407
22.03.2016, 09:41 11
А не подскажете, как вычислить (10е10)! не поделитесь кодом? )
0
2663 / 2238 / 240
Регистрация: 03.07.2012
Сообщений: 8,141
Записей в блоге: 1
22.03.2016, 09:57 12
Не поделюсь. Любая [почти] программа работает с параметрами в ограниченном диапазоне, так что высказывания типа "не работает с 1000!" - пустышки. А у Вас с 1000! работает? Если "Да", тогда не работает с 1010! и нафига было встревать со своими 1000! ?

Люди написали работающий пример, которого ТС достаточно. Но находятся"вумники", желающися себя показать и пишут про 1000!
0
Эксперт С++
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
23.03.2016, 03:27 13
Цитата Сообщение от _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 14
Спасибо! Я просто недавно пересел на С++, до этого программил в матлабе и вольфраме, видел как-то тему на хабре, спор был, кто быстрее вычислит факториал вольфрам математика или с++, все склонялись к с++ Вот и стало интересно. Конечно это нигде не пригодится, как и вычисление мат. констант до милионного знака ) тем не менее идет гонка, кто больше знаков вычислит в числе пи
0
2663 / 2238 / 240
Регистрация: 03.07.2012
Сообщений: 8,141
Записей в блоге: 1
23.03.2016, 13:23 15
_Faradey, а попробуй на С+ написать программу, которая точно вычисляет факториалы 1000-5000 и обгоняет вольфрам. Думаю, ничего не получиться.
0
23.03.2016, 13:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2016, 13:23
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru