Strona 1 z 1

[ram2c] Silnia modulo

: 30 gru 2014, o 22:05
autor: MaksMatematyk
Witam,
Polecenie brzmi "Napisz program, który policzy resztę z dzielenia liczby n! przez k". Program, w którym piszę nie obsługuje komendy MOD. Kiedy zamieszczam rozwiązanie wyświetla się napis "time limit exceeded", co według mnie znaczy, że wypisany program jest dobry lecz za długi, gdyż w innym przypadku system wyświetlał "wrong answer". Poniżej zamieszczam program, który dla mnie jest najkrótszy, jeżeli ktoś ma pomysł, jak to rozwiązać, prosiłbym o szybką odpowiedź.
Pozdrawiam

Kod: Zaznacz cały

read 1
load 1
store 2
[RTY] sub =1
jzero [QWE]
store 1
mult 2
store 2
load 1
jump [RTY]
[QWE] load 2
store 1
read 2
div 2
mult 2
store 3
load 1
sub 3
write 0
halt

[ram2c] Silnia modulo

: 30 gru 2014, o 22:56
autor: Medea 2
Tu nie chodzi o długość programu, ale jego czas działania. Ram2c kojarzy mi się tylko z izraelską obroną, ale ja w czystym C zrobiłabym to tak: jeśli \(\displaystyle{ k}\) jest małe, to wystarczy stablicować wcześniej wyniki. Jeśli wieksze - rozłożyć na czynniki i z tym kombinować, a najprościej to napisać własną funkcję mod