Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
QremQ
4 / 4 / 0
Регистрация: 23.08.2009
Сообщений: 32
#1

Нужно определить предельное значение n! если n - int - C++

22.01.2012, 19:17. Просмотров 376. Ответов 5
Метки нет (Все метки)

сделал прогу

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream.h>
#include <conio.h>
#include <limits.h>
int main()
{
clrscr();
int i,F,n,max;
max=INT_MAX;
F=1;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
  if(F<max && F>0) {F=F*i;cout<<"\nF="<<F;}
  else break;
cout<<"\nF="<<F;
getch();
return 0;
}
Но как убрать последнее превышение не пойму..., ведь при последнем умножении все равно выход из диапазона, т.е. при n=8 получаем превышение и F=-25216
очень надеюсь на помошь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2012, 19:17     Нужно определить предельное значение n! если n - int
Посмотрите здесь:

Определить, является ли введенное значение года високосным, если введено корректное значение - C++
Определить, является ли введенное значение года високосным, если введено корректное значение.

Зачем преобразовывать itsVal в int, если эта переменная и так объявлена как тип int - C++
// Оператор преобразования #include &lt;iostream&gt; using namespace std; class Counter { public: Counter(): itsVal(0) {} ...

Определить, для какого наибольшего n можно вычислить значение (2n)!!, используя int - C++
Определить, для какого наибольшего n можно вычислить значение (2n)!! (произведение всех четных натуральных чисел, не превышающих 2n),...

Где нужно писать сообщение об ошибке, если ввели неправильное значение? - C++
простите за глупый вопрос, но где нужно писать сообщение об ошибке, если ввели неправильное значение, перепробовала кучу вариантов, никак ...

Двойной цикл: нужно получить первое значение если выполнится условие - C++
есть двойной цикл и нужно получить первое значение если выполнится это условие if (!field-&gt;IsWin()) получаем значения и останавливаем циклы...

Переменной k логического типа присвоить значение true в том случае, если массив n целых чисел упорядочен по возрастанию, i значение false если нет - C++
Условие задачи: Переменной k логического типа присвоить значение true в том случае, если массив n целых чисел упорядочен по возрастанию,...

Описать функцию int vms(int Vkmh), которая переводит значение Vkmh из км/ч в м/с - C++
Опишите функцию int vms(int Vkmh) которая переводит значение Vkmh из км/ч в м/с. Используйте эту функцию в другой функции int...

Опишите функцию int vms(int Vkmh), которая переводит значение Vkmh из км/ч в м/с - C++
Всем привет! Я студентка, учусь на программиста и в данный момент учу С++ и ничего не понятно! Есть пару вопросов которые ну ни как не...

Определить значение угла для минутной стрелки, если известен угол часовой - C++
Доброго времени суток! В С++ недавно, но в универе уже задали такие задачи: 3)Часовая стрелка образует угол y с лучом, проходящим...

Массивы, нужно определить минимальный элемент, вывести его значение и индекс... - C++
Здравствуйте, мне нужно определить минимальный элемент. Вывести его значение и индекс. Тип элементов массива Float Количество элементов...

Определить, является ли значение целочисленной переменной х четным. Если является, то вывести на печать значен - C++
Определить, является ли значение целочисленной переменной х четным. Если является, то вывести на печать значение х, в противном случае...

Значение типа "int*" нельзя присвоить сущности типа int - C++
#include &lt;iostream&gt; using namespace std; int sort(int k, int p, int b, int n) { int min = 0; // для вставки задач int sum;...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6537 / 5003 / 460
Регистрация: 14.02.2011
Сообщений: 16,635
22.01.2012, 19:21     Нужно определить предельное значение n! если n - int #2
Цитата Сообщение от QremQ Посмотреть сообщение
if(F<max && F>0) {F=F*i;cout<<"\nF="<<F;}
else break;
Цитата Сообщение от QremQ Посмотреть сообщение
Но как убрать последнее превышение не пойму...,
можно так
C++
1
2
3
if(F>max/i )
    break;
F=F*i;cout<<"\nF="<<F;
QremQ
4 / 4 / 0
Регистрация: 23.08.2009
Сообщений: 32
22.01.2012, 19:24  [ТС]     Нужно определить предельное значение n! если n - int #3
тоже самое получается, он выводит последнее значение F=-25216, может другой цикл использовать?
ValeryS
Модератор
6537 / 5003 / 460
Регистрация: 14.02.2011
Сообщений: 16,635
22.01.2012, 19:26     Нужно определить предельное значение n! если n - int #4
или так
C++
1
2
3
if((F*i)>max || (F*i)<0) 
 break;
F=F*i;cout<<"\nF="<<F;
Добавлено через 46 секунд
Цитата Сообщение от QremQ Посмотреть сообщение
тоже самое получается
ты посмотри я поправился
QremQ
4 / 4 / 0
Регистрация: 23.08.2009
Сообщений: 32
22.01.2012, 19:39  [ТС]     Нужно определить предельное значение n! если n - int #5
Цитата Сообщение от ValeryS Посмотреть сообщение
или так
C++
1
2
3
if((F*i)>max || (F*i)<0) 
 break;
F=F*i;cout<<"\nF="<<F;
Добавлено через 46 секунд

ты посмотри я поправился
Спасибо все получилось
ValeryS
Модератор
6537 / 5003 / 460
Регистрация: 14.02.2011
Сообщений: 16,635
22.01.2012, 20:23     Нужно определить предельное значение n! если n - int #6
Цитата Сообщение от QremQ Посмотреть сообщение
Спасибо все получилось
для спасибы кнопка есть
Yandex
Объявления
22.01.2012, 20:23     Нужно определить предельное значение n! если n - int
Ответ Создать тему
Опции темы

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