01-18-2011, 10:20 PM
Here is a BASIC version for the HP-71b, one of my favorite calculators. It is much faster than the 32sii version, probably because it doesn't have to decode multiple numbers stored in a register.
HP 71b program to determine 15 puzzle solvability10 destroy all
20 integer a(16)
30 data 11,5,14,7,15,2,9,4,6,0,1,13,10,3,12,8
40 for i=1 to 16
50 read a(i)
60 if a(i)=0 then let b=ip((i+3)/4)
70 next i
80 for i=1 to 15
90 for j=i+1 to 16
100 if a(j)<>0 and a(j)<a(i) then let b=b+1
110 next j
120 next i
130 if mod(b,2)=0 then disp "solvable" else disp "unsolvable"
140 disp "inversions = ";b