Rubyについて Part 8
■ このスレッドは過去ログ倉庫に格納されています
0381358 koukan_bit.rbソース
NGNGdef first(n); (1 << n) - 1; end
def nextset(x)
smallest = x & -x; ripple = x + smallest
new_smallest = ripple & -ripple
ones = ((new_smallest / smallest) >> 1) - 1
ripple | ones
end
def printset(s)
for i in 1..N
printf(" %d", i) if ((s & 1) != 0)
s >>= 1
end
print "\n"
end
i = 1; x = first(K)
while((x & ~first(N)) == 0)
printf("%4d:", i); printset(x)
x = nextset(x); i += 1
end
■ このスレッドは過去ログ倉庫に格納されています