Erlang에 코드를 작성했습니다. 컴퓨터에서 정답을 얻습니다. 하지만 SPOJ에 제출하면 NZEC (종료 코드가 아닌 값) 오류가 발생합니다. 나는 halt()
과 init:stop()
과 같은 내장 함수를 사용했으며, 그 사양은 0이 아닌 종료 코드 오류를 피하기 위해 사용된다는 것을 분명히 말해줍니다. 하지만 여전히 같은 오류가 발생합니다. 이 문제를 어떻게 해결할 수 있습니까?SPLJ의 Erlang에서 NZEC 오류를 피하십시오.
편집 코멘트에 의해 필요에 따라 코드 :
-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 (계승). -export ([main/0]). main() -> {ok, [No_of_cases]} = io : fread ("", "~ d"), 루프 (No_of_cases). 루프 (0) -> % init : stop(); 정지 (1); {ok, [Number]} = io : fread (""~ d "), ResultFactorial = find_factorial (Number, 1), io : format ("~ p ~ n " , [ResultFactorial]), 루프 (No_of_cases-1). find_factorial (0, Product) -> 제품; find_factorial (Number, Product) -> find_factorial (Number-1, Product * Number)입니다. 이 코드는 팩토리얼을 찾는 데 사용됩니다. 내 컴퓨터에서 잘 실행되지만 spoj가 0이 아닌 종료 코드 오류를 내고 있습니다. – niting112