→ Для вступления в общество новичков и профессионалов программирования, пожалуйста нажмите здесь ...

Форум программистов: C++, Basic, Delphi, Pascal, JavaScript
Логин: Пароль:
Запомнить?  
@Mail.ru



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Помогите с кодом =( 
Автор Сообщение
Начинающий

Регистрация: 07.01.2011
Сообщения: 14
Языки:
Специальность:

Репутация: 0 [ ? ]
 Помогите с кодом =(
Здравствуйте, в своей академии я получил задание, создать программу вычисляющую факториал не отрицательных целых чисел значения n.

#include <iostream>
using namespace std;
void main(){
unsigned int n=0;
unsigned int i=1,a=1,answer;

do{
cout<<"\t\t\tChous you answer\n\n";
cout<<"\t1) Faktorial\n\n";
cout<<"\t2) OUT !\n\n";
cin>>answer;
switch(answer){
case 1:
cout<<"\t\t\t\tFAKTORIAL\n\n\n";
cout<<"Please, enter a digit: ";
cin>>n;

while(i<=n){
a*=i;
i++;}
cout<<"\n\nFaktorial of "<<n<<" is "<<a<<"\n\n\n";
break;
case 2:
cout<<"\n\t\t\tBye !!!\n\n";
break;

default:
cout<<"\n\t\t\tError\n\n";}
}
while(answer!=2);

}


вот собственно она.
Проблема в том что при вводе значения 13 я получаю ответ "1 932 053 504"
а при вводе значения 14 получаю меньший ответ "1 278 945 280".
При вводе больших значений я получаю ответ "2 004 189 184"
хотя подключил using.
Проконсультируйте пожалуйста =))


07.07.2011 21:01
Профиль Отправить email
Эксперт
Аватара пользователя

Регистрация: 10.04.2010
Сообщения: 102
Языки:

Репутация: 3 [ ? ]
 Re: Помогите с кодом =(
Вместо unsigned int можно long long, поскольку он больше.

_________________
Тот, кто хочет работать, ищет возможность,
а тот, кто не хочет, ищет причину.


08.07.2011 12:51
Профиль Отправить email
Начинающий

Регистрация: 07.01.2011
Сообщения: 14
Языки:
Специальность:

Репутация: 0 [ ? ]
Сообщение Re: Помогите с кодом =(


09.07.2011 8:37
Профиль Отправить email
Эксперт
Аватара пользователя

Регистрация: 10.04.2010
Сообщения: 102
Языки:

Репутация: 3 [ ? ]
 Re: Помогите с кодом =(

_________________
Тот, кто хочет работать, ищет возможность,
а тот, кто не хочет, ищет причину.


09.07.2011 17:25
Профиль Отправить email
Начинающий

Регистрация: 31.10.2011
Сообщения: 4
Языки:
Специальность:

Репутация: 0 [ ? ]
 Re: Помогите с кодом =(
int n;int a=1;
cout<<"Factorial chisla:";cin>>n;cout<<endl;
if(n!=0){
for(int i=1;i<=n;i++)
{
a*=i
}
cout<<n<<"!="<<a<<;
}
if(n==0){cout<<n<<"!="<<a<<;}
[smile]


31.10.2011 16:45
Профиль Отправить email
Начинающий

Регистрация: 26.11.2011
Сообщения: 4
Языки:
Специальность:

Репутация: 0 [ ? ]
 Re: Помогите с кодом =(
По поводу 2 004 189 184: машина не рассчитана на большие числа. Это предел, 2 в 10-й степени. Что бы ты не делал, выйти за пределы этого числа не получится.


07.12.2011 18:55
Профиль Отправить email
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 


Кто сейчас на конференции

Зарегистрированные пользователи: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
© 2013 «Форум программистов Украины»