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

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

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

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

22.01.2012, 19:17. Просмотров 384. Ответов 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
очень надеюсь на помошь
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2012, 19:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужно определить предельное значение n! если n - int (C++):

Определить, является ли введенное значение года високосным, если введено корректное значение - 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++
есть двойной цикл и нужно получить первое значение если выполнится это условие if (!field-&gt;IsWin()) получаем значения и останавливаем циклы...

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

Для чего нужно писать в int main() в скобках всякие args потом объявлять переменные, и прочее. Для чего если можно в сборках это все обьявлять. - C++
Для чего нужно писать в int main() в скобках всякие args потом объявлять переменные, и прочее. Для чего если можно в сборках это все...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
22.01.2012, 19:21 #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;
0
QremQ
4 / 4 / 0
Регистрация: 23.08.2009
Сообщений: 32
22.01.2012, 19:24  [ТС] #3
тоже самое получается, он выводит последнее значение F=-25216, может другой цикл использовать?
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
22.01.2012, 19:26 #4
или так
C++
1
2
3
if((F*i)>max || (F*i)<0) 
 break;
F=F*i;cout<<"\nF="<<F;
Добавлено через 46 секунд
Цитата Сообщение от QremQ Посмотреть сообщение
тоже самое получается
ты посмотри я поправился
0
QremQ
4 / 4 / 0
Регистрация: 23.08.2009
Сообщений: 32
22.01.2012, 19:39  [ТС] #5
Цитата Сообщение от ValeryS Посмотреть сообщение
или так
C++
1
2
3
if((F*i)>max || (F*i)<0) 
 break;
F=F*i;cout<<"\nF="<<F;
Добавлено через 46 секунд

ты посмотри я поправился
Спасибо все получилось
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
22.01.2012, 20:23 #6
Цитата Сообщение от QremQ Посмотреть сообщение
Спасибо все получилось
для спасибы кнопка есть
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2012, 20:23
Привет! Вот еще темы с ответами:

В программе объявлена переменная int x=1; определить значение выражения х>0 && x<1 ? 10/x : 10*x - C++
ответ уже известен, 10. Проблема в том что я не знаю каким образом он был получен.. а точнее какую функцию выполняет &quot;:&quot; здесь. просьба...

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

Напишите перегруженную функцию power (), которая принимает два целочисленных параметра типа int и возвращает целочисленное значение типа int - C++
Операции над целыми числами осуществляются быстрее, чем над числами с плавающей точкой. Напишите перегруженную функцию power (), ...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.01.2012, 20:23
Ответ Создать тему
Опции темы

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