fannkuch.js (371B)
1 function fannkuch() { 2 var count = Array(8); 3 var r = 8; 4 var done = 0; 5 while (done < 40) { 6 // write-out the first 30 permutations 7 done += r; 8 while (r != 1) { count[r - 1] = r; r--; } 9 while (true) { 10 count[r] = count[r] - 1; 11 if (count[r] > 0) break; 12 r++; 13 } 14 } 15 return done; 16 } 17 assertEq(fannkuch(), 41);