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");
        }
}

Reply via email to