Я написал простой код, чтобы попробовать, правильно ли работает компилятор на моем новом компьютере. Нет проблем с компиляцией/сборкой проекта. Программа должна вычислять факторную рекурсию, и она работает нормально, но только под 13! (Это только около x * 10^9, двойное должно иметь диапазон до x * 10^308). Если я попробую более высокие цифры, это даст мне отрицательные результаты и т. Д. Я не могу выяснить, что вызывает проблему. На моем старом компьютере (32 бит win xp) работал тот же код, что и до 170! (но я не уверен, что это было точно так же, потому что основная часть моих данных была потеряна). Sholud Я переустанавливаю компилятор или что-то не так с настройками? Или мой код неверен?Слишком длинная переполнение C++ слишком рано
Мой текущий компьютер имеет 64-разрядный процессор win7 и AMD. Я использую обновление MS Visual Studio 2012 2.
Я новичок на C++, а также извиняюсь за плохой английский.
Вот мой код:
#include <iostream>
using namespace std;
int factorial(int x){
if (x==2){ return 2;}
return x*factorial(x-1);
}
int main()
{
double x,v;
cout<<"insert number: ";
cin>>x;
v=factorial(x);
cout<<"\n"<<v<<"\n";
system("pause");
return 0;
}
Да, определенно. Спасибо. Я чувствую себя немой, потому что это действительно элементарная ошибка, и я ее не заметил ... – Adam