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

Модернизируйте функцию factorial так, чтобы она не была рекурсивной

29.10.2016, 00:05. Показов 534. Ответов 3
Метки c++ (Все метки)

Author24 — интернет-сервис помощи студентам
Пример программы:

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
// Вычисляющей сумму, разность и факториал
// двух чисел
#include <iostream.h>
 
class MyInt
{
int i;
public:
MyInt(int n = 0) {i = n;}
operator int() {return i;}
};
 
inline istream& operator>> (istream& s, MyInt& i)
{
int j;
 
cin>>j;
i = j;
return s;
}
 
int factorial(int n)
{
if (n <= 0)
 return 0;
if (n == 1)
 return 1;
return n*factorial(n-1);
}
 
 
int main()
{
char str[20];
 
do
{
 cout<<"1 Сложение\n";
 cout<<"2 Вычитание\n";
 cout<<"3 Вычисление факториала\n";
 cout<<"4 Выход\n";
 cout<<"Выберите действие > ";
 cin>>str;
 
 if (str[1] != 0)
  cout<<"Неверный ввод\n";
 else
  if (str[0] == '4')
   break;
  switch (str[0])
  {
   case '1':
   case '2':
    {
     MyInt a, b;
     cout<<"Введите число a > ";
     cin>>a;
     cout<<"Введите число b > ";
     cin>>b;
     if (str[0] == '1')
      cout<<"a+b="<<a+b<<endl;
     else
      cout<<"a-b="<<a-b<<endl;
     break;
    }
   case '3':
    {
     MyInt a;
     cout<<"Введите число a > ";
     cin>>a;
     cout<<"Факториал a равен "<<factorial(a)<<endl;
     break;
    }
   default:
    cout<<"Неверный ввод\n";
  }
}while(1);
 
return 0;
}
Рабочее задание

Модернизируйте функцию factorial так, чтобы она не была
рекурсивной.

Измените класс MyInt так, чтобы программа работала с числами
разрядностью 80 бит (например вычислялся бы факториал 24)
без изменения функции main.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2016, 00:05
Ответы с готовыми решениями:

Доопределить функцию так,чтобы она была непрерывна в 0
Доопределить функцию так,чтобы она была непрерывна в 0 ...

Как объявить переменную так, чтобы она была видна в .h файле?
День всем добрый! Допустим, есть у меня код в главном .cpp файле: #include &quot;Windows.h&quot;...

Образовать последовательность чисел так, чтобы она тоже была неубывающей.
Даны две последовательности а1+а2+….+аn и b1+b2+…+bm Образовать из них новую последовательность...

Преобразовать матрицу так, чтобы она была симметрична относительно главной диагонали
Помогите, напишите программу: Задано квадратную матрицу А . Превратить ее таким образом, чтобы...

3
385 / 279 / 478
Регистрация: 09.05.2014
Сообщений: 769
29.10.2016, 12:56 2
C++
1
2
3
4
5
6
7
8
9
10
long long factorial(int n)
{
    int fact=1;
    while (n>1)
    {
        fact*=n;
        n--;
    }
    return fact;
}
1
-15 / 1 / 0
Регистрация: 08.04.2016
Сообщений: 127
29.10.2016, 16:28  [ТС] 3
А 2-ое задание поможешь сделать?
0
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
28045 / 15778 / 982
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
30.10.2016, 08:51 4
а второе задание - в отдельную тему.
0
30.10.2016, 08:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.10.2016, 08:51
Помогаю со студенческими работами здесь

рабочая программа. но нужно ее переписать так, чтобы она была наиболее общей.
Задана матрица смежности размерности N*M. С помощью процедуры и матрицы меньшей размерности найти...

Массив: Образовать из заданных новую последовательность чисел так, чтобы она была невозрастающей.
Даны две последовательности а1 &lt;= а2 ...&lt; =аn и b1 &lt;= b2 &lt; =... &lt; =bm. Образовать из них новую...

Образовать из последовательностей новую последовательность чисел так, чтобы она тоже была неубывающей
Даны две последовательности А1&lt;=A2&lt;=...&lt;=An и B1&lt;=B2&lt;=...&lt;=Bm. Образовать из них новую...

Массив: Образовать новую последовательность чисел так, чтобы она тоже была неубывающей
Помогиет реализовать программу на С++ или дайте советы по ее построению Даны две...


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

Или воспользуйтесь поиском по форуму:
4
Закрытая тема Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru