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

Форум программистов: 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 ] 


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

Зарегистрированные пользователи: нет зарегистрированных пользователей


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

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