Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 69, средняя оценка - 4.87
MeTeop
2 / 2 / 0
Регистрация: 03.01.2011
Сообщений: 13
#1

Написать программу, которая вычисляет факториал неотрицательных целых чисел n - C++

11.01.2011, 13:11. Просмотров 10160. Ответов 15
Метки нет (Все метки)

//3. Дано натуральное число n. Написать программу, которая вычисляет факториал неотрицательных целых чисел n (т.е. число целое и больше 0). Формула вычисления факториала приведена ниже.
n! = 1*2*3*....*n, (формула вычисления факториала числа n)
0! = 1 (факториал 0 равен 1 (по определению факториала))
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//Черее цикл while или do while
 
#include <iostream>
using namespace std;
void main(){
    int n=0;
    cout<<"Enter - ";
    int a;
    cin>>a;
    while(n<a){
        n++;
        cout<<n;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2011, 13:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать программу, которая вычисляет факториал неотрицательных целых чисел n (C++):

Написать программу, которая вычисляет сумму первых n целых положительных целых чисел - C++
Написать программу, которая вычисляет сумму первых n целых положительных целых чисел. Количество суммируемых чисел должно вводиться во...

Написать программу, которая вычисляет сумму первых n целых положительных четных чисел - C++
Суммируемые числа должны вводиться в строку через запятую

Составить рекурсивную функцию, которая вычисляет сумму двух целых неотрицательных чисел путем многократного добавления числа 1 - C++
Условие: Составить рекурсивную функцию, которая вычисляет сумму двух целых неотрицательных чисел путем многократного добавления числа 1....

Написать программу, которая вычисляет произведение элементов введенного с клавиатуры массива целых чисел - C++
Написать программу, которая вычисляет произведение элементов введенного с клавиатуры массива целых чисел. Количество элементов в массиве -...

Написать программу, которая вычисляет среднее арифметическое ненулевых элементов введенного с клавиатуры массива целых чисел. - C++
Написать программу, которая вычисляет среднее арифметическое ненулевых элементов введенного с клавиатуры массива целых чисел. Ниже...

Напишите программу, которая вычисляет факториал числа - C++
Напишите программу, которая вычисляет факториал числа п. N должен быть введен с клавиатуры. Программа должна вывести также &quot;малый&quot;, если...

15
igorrr37
1719 / 1347 / 168
Регистрация: 21.12.2010
Сообщений: 2,070
Записей в блоге: 10
11.01.2011, 13:25 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
 
int main(){
    int n, temp=1;
    cout<<"Enter n\n";
    cin>>n;
    while(n>0){
        temp*=n--;
    }
    cout<<temp;
}
0
Nameless One
Эксперт С++
5780 / 3429 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
11.01.2011, 13:38 #3
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
#include <stdio.h>
#include <stdlib.h>
 
typedef unsigned long long ullong_t;
 
ullong_t fact_while(size_t);
ullong_t fact_rec(size_t);
 
int main()
{
    size_t n;
    puts("Input n: ");
    scanf("%u", &n);
    printf("Calculating with `while' loop: %llu\n", fact_while(n));
    printf("Calculating with recursion: %llu\n", fact_rec(n));
    exit(0);
}
 
ullong_t fact_while(size_t n)
{
    ullong_t result = 1;
    while(n)
        result *= n--;
    return result;
}
 
ullong_t fact_rec(size_t n)
{
    return n ? n * fact_rec(n - 1) : 1;
}
0
sandye51
программист С++
686 / 591 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
11.01.2011, 14:04 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <conio.h>
 
using namespace std;
 
void main()
{
    int n = 1;
    cout << "Enter - \n";
    int a;
    cin >> a;
    while(a > 1)
        n *= a--;
    cout << n << endl;
    _getch();
}
1
vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
11.01.2011, 14:06 #5
а зачем две темы создали ?
0
sandye51
11.01.2011, 14:21
  #6

Не по теме:

vx5, автор наверно думает может больше вариантов решений будет

0
isaak
107 / 44 / 9
Регистрация: 17.10.2010
Сообщений: 682
11.01.2011, 16:12 #7
Не знаю может кому пригодится для факториалов больших чисел (от 10! до 170! включительно)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <conio.h>
using namespace std;
typedef double  udouble;
void main()
{
         udouble n = 1;
        cout << "Enter - \n";
        udouble a;
        cin >> a;
        while(a > 1)
                n *= a--;
        cout << n << endl;
        _getch();
}
Добавлено через 15 минут
До 4000! включительно:
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
#include <stdio.h>
#include <stdlib.h>
 typedef  double  udouble_t;
udouble_t fact_while(size_t);
udouble_t fact_rec(size_t);
 
int main()
{
        size_t n;
        puts("Input n: ");
        scanf("%u", &n);
        printf("Calculating with `while' loop: %llu\n", fact_while(n));
        printf("Calculating with recursion: %llu\n", fact_rec(n));
        system("pause");
        exit(0);
}
 
udouble_t fact_while(size_t n)
{
        udouble_t result = 1;
        while(n)
                result *= n--;
        return result;
}
 
udouble_t fact_rec(size_t n)
{
        return n ? n * fact_rec(n - 1) : 1;
}
1
sandye51
11.01.2011, 16:40
  #8

Не по теме:

isaak, давай еще длинную арифметику напиши

0
MeTeop
2 / 2 / 0
Регистрация: 03.01.2011
Сообщений: 13
11.01.2011, 22:07  [ТС] #9
спасибо sandye51!!!
0
M128K145
Эксперт С++
8309 / 3529 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
12.01.2011, 18:32 #10
Ну тогда и мой вариант http://www.cyberforum.ru/cpp/thread167176.html#post970436 до 100 000! гарантированно, дальше не проверял, но запас есть, должен работать до ~200 000!

isaak, в вашем случае младшие десятичные разряды теряются
1
isaak
107 / 44 / 9
Регистрация: 17.10.2010
Сообщений: 682
12.01.2011, 22:02 #11
M128K145, а почему у вас выводит сообщение какое кол-во нулей и не выводит ни одного значения факториала?

Добавлено через 3 минуты
Во всех предыдущих программах выводились значения факториала, в случае больших чисел округленные, но значения, а в вашей программе только количество нулей??????
0
M128K145
Эксперт С++
8309 / 3529 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
12.01.2011, 22:39 #12
isaak, а вы посмотрите созданный файлик factorial.txt возле екзешника
Потому как консоль все равно не выведет все 450K цифр(для 100K!), да и вывод будет очень долгим, поэтому я вывел все в файл. Посмотрите на код метода
C++
1
void WriteFactorial(int);
0
isaak
107 / 44 / 9
Регистрация: 17.10.2010
Сообщений: 682
12.01.2011, 23:11 #13
M128K145 извиняюсь не заметил строку
C++
1
  std::ofstream out("factorial.txt", std::ios::out);
- результаты программы сохраняются в текстовый файл спасибо огромное
0
svetlanaZ
0 / 0 / 0
Регистрация: 17.01.2014
Сообщений: 2
20.01.2014, 00:28 #14
Ребята,а можете мне объяснить,что оно обозначает:
Код C++
//Через цикл while или do while

#include <iostream>
using namespace std;
void main(){
int n=0;
cout<<"Enter - ";
int a;
cin>>a;
while(n<a){
n++;
cout<<n;
}
и почему оно именно так!?Где здесь как по формуле вычисления факториала?
0
S_el
2126 / 1653 / 311
Регистрация: 15.12.2013
Сообщений: 6,483
20.01.2014, 02:58 #15
Цитата Сообщение от svetlanaZ Посмотреть сообщение
и почему оно именно так!?Где здесь как по формуле вычисления факториала?
Вы код выложили не полностью,и в этом цикле факториал не вычисляется.
0
20.01.2014, 02:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2014, 02:58
Привет! Вот еще темы с ответами:

Написать программу, которая предлагает пользователю ввести 10 чисел, вычисляет процент четных и нечетных чисел и выводит результат в консоль - C++
Написать программу, которая предлагает пользователю ввести 10 чисел, вычисляет процент четных и нечетных чисел и выводит результат в...

Разработать программу, которая вычисляет факториал и состоит из функций - C++
я ее сделал но меня есть вопрос: 1. я сделал массив из ста элементов, а можно его сделать полностью динамический чтобы пользователь...

Написать программу, которая вычисляет среднее арифметическое последовательности дробных чисел - C++
программа с++ помогите с программой, выдает ошибку и закрывается после ввода количества чисел Написать программу, которая вычисляет...

. Составить программу, которая вычисляет факториал числа n, введенного с клавиатуры - C++
Есть такая задача: которая находит сумму чисел от 1 до n, где n – вводится с клавиатуры. вот код: #include...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru