// UVa 10323 - Factorial! You Must be Kidding!!! #include <iostream> using namespace std; #define datatype signed long long int #define Max 6227020800 #define Min 10000 int main() { datatype f[101]; f[0] = 1; datatype n = 0; while (f[n] <= Max) { n++; f[n] = n * f[n - 1]; } datatype i; while (cin >> i) { if (i < 0) { bool even = (i % 2 == 0); cout << (even ? "Underflow!" : "Overflow!") << endl; } else if (i >= n) cout << "Overflow!" << endl; else if (f[i] < Min) cout << "Underflow!" << endl; else cout << f[i] << endl; } return 0; }
No comments:
Post a Comment