On 02/02/2012 05:28 PM, xancorreu wrote:
I get "segment violation" error with ./factorial 400000
How can I resolve it?
My code is:
import std.stdio, std.bigint, std.string, std.conv, std.stream;
BigInt recFactorial(int n) {
if (n == 0)
return BigInt(1);
else
return (BigInt(n) * recFactorial(n - 1));
}
void main(string[] args) {
if (args.length != 2)
writeln("Factorial requires a number");
else
try {
writeln(recFactorial(std.conv.to!int(args[1])));
} catch {
writeln("Error");
}
}
Thanks a lot,
import std.stdio, std.bigint, std.conv;
BigInt factorial(int n) {
BigInt result=1;
foreach(i;1..n) result*=i;
return result;
}
void main(string[] args) {
if (args.length != 2)
writeln("Factorial requires a number");
else
try {
writeln(factorial(std.conv.to!int(args[1])));
} catch {
writeln("Error");
}
}