Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
9
Task/Gray-code/Nim/gray-code-1.nim
Normal file
9
Task/Gray-code/Nim/gray-code-1.nim
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
proc grayEncode(n): auto =
|
||||
n xor (n shr 1)
|
||||
|
||||
proc grayDecode(n): auto =
|
||||
result = n
|
||||
var t = n
|
||||
while t > 0:
|
||||
t = t shr 1
|
||||
result = result xor t
|
||||
4
Task/Gray-code/Nim/gray-code-2.nim
Normal file
4
Task/Gray-code/Nim/gray-code-2.nim
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
import strutils
|
||||
|
||||
for i in 0 .. 32:
|
||||
echo i, " => ", toBin(grayEncode(i), 6), " => ", grayDecode(grayEncode(i))
|
||||
21
Task/Gray-code/Phix/gray-code.phix
Normal file
21
Task/Gray-code/Phix/gray-code.phix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
function gray_encode(integer n)
|
||||
return xor_bits(n,floor(n/2))
|
||||
end function
|
||||
|
||||
function gray_decode(integer n)
|
||||
integer r = 0
|
||||
while n>0 do
|
||||
r = xor_bits(r,n)
|
||||
n = floor(n/2)
|
||||
end while
|
||||
return r
|
||||
end function
|
||||
|
||||
integer e,d
|
||||
puts(1," N Binary Gray Decoded\n"&
|
||||
"== ===== ===== =======\n")
|
||||
for i=0 to 31 do
|
||||
e = gray_encode(i)
|
||||
d = gray_decode(e)
|
||||
printf(1,"%2d %05b %05b %2d\n",{i,i,e,d})
|
||||
end for
|
||||
14
Task/Gray-code/Sidef/gray-code.sidef
Normal file
14
Task/Gray-code/Sidef/gray-code.sidef
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
func bin2gray(n) {
|
||||
n ^ (n >> 1);
|
||||
}
|
||||
|
||||
func gray2bin(num) {
|
||||
var bin = num;
|
||||
while (num >>= 1) { bin ^= num };
|
||||
return bin;
|
||||
}
|
||||
|
||||
0..31 -> each { |i|
|
||||
var gr = bin2gray(i);
|
||||
printf("%d\t%b\t%b\t%b\n", i, i, gr, gray2bin(gr));
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue