Я написал код в Erlang, и я получил правильный ответ на своей машине. Но когда я отправляю его на SPOJ, он дает ошибку NZEC (не нулевой код выхода). Я использовал встроенные функции, такие как halt()
и init:stop()
, и их спецификация четко говорит, что они используются для предотвращения ненулевой ошибки кода выхода. Но все же я получаю ту же ошибку. Как я могу решить эту проблему?Избегайте ошибки NZEC в Erlang в SPOJ
EDIT код в соответствии с требованиями комментарий:
-module(factorial).
-export([main/0]).
main() ->
{ok, [No_of_cases]} = io:fread("", "~d"),
loop(No_of_cases).
loop(0) ->
%init:stop();
halt(1);
loop(No_of_cases) ->
{ok, [Number]} = io:fread("", "~d"),
ResultFactorial = find_factorial(Number,1),
io:format("~p~n",[ResultFactorial]),
loop(No_of_cases-1).
find_factorial(0,Product) ->
Product;
find_factorial(Number,Product) ->
find_factorial(Number-1,Product*Number).
Возможно, если бы вы могли немного поработать над своим кодом или хотя бы сообщить об ошибке, вам было бы легче помочь вам ... –
-module (factorial). -экспорт ([основной/0]). main() -> {ok, [No_of_cases]} = io: fread ("", "~ d"), loop (No_of_cases). loop (0) -> % init: stop(); halt (1); loop (No_of_cases) -> {ok, [Number]} = io: fread ("", "~ d"), ResultFactorial = find_factorial (Number, 1), io: format ("~ p ~ n" , [ResultFactorial]), loop (No_of_cases-1). find_factorial (0, продукт) -> Продукт; find_factorial (Number, Product) -> find_factorial (Number-1, Product * Number). Этот код предназначен для поиска factorial.Running хорошо на моей машине, но в spoj дает ненулевой код ошибки выхода – niting112