Compito
Dati due numeri interi positivi (divid e n e div o r), calcola il q uotient e il r emainder.
Normalmente sarebbe calcolato come e = o*q+r
dove q*o<=e
e 0<=r<o
.
Per questa sfida è ancora e = o*q+r
ma q*o>=e
e -o<r<=0
.
Ad esempio e=20
e o=3
, normalmente lo sarebbe 20/3 -> 20=3*6+2
, poiché 18<=20
e 0<=2<3
. Qui sarà 20/3 -> 20=3*7-1
dove 21>=20
e-3<-1<=0
Casi test
Input -> Output
20, 3 -> 7, -1
10, 5 -> 2, 0
7, 20 -> 1, -13
100, 13 -> 8, -4
Non è necessario gestire o=0
.
r
come negazione del reale r
per le lingue che utilizzano byte non firmati per archiviare dati o presupporre un overflow? ( -1
→ 1
/ 255
)