Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
25
Task/Hamming-numbers/AWK/hamming-numbers.awk
Normal file
25
Task/Hamming-numbers/AWK/hamming-numbers.awk
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# syntax: gawk -M -f hamming_numbers.awk
|
||||
BEGIN {
|
||||
for (i=1; i<=20; i++) {
|
||||
printf("%d ",hamming(i))
|
||||
}
|
||||
printf("\n1691: %d\n",hamming(1691))
|
||||
printf("\n1000000: %d\n",hamming(1000000))
|
||||
exit(0)
|
||||
}
|
||||
function hamming(limit, h,i,j,k,n,x2,x3,x5) {
|
||||
h[0] = 1
|
||||
x2 = 2
|
||||
x3 = 3
|
||||
x5 = 5
|
||||
for (n=1; n<=limit; n++) {
|
||||
h[n] = min(x2,min(x3,x5))
|
||||
if (h[n] == x2) { x2 = 2 * h[++i] }
|
||||
if (h[n] == x3) { x3 = 3 * h[++j] }
|
||||
if (h[n] == x5) { x5 = 5 * h[++k] }
|
||||
}
|
||||
return(h[limit-1])
|
||||
}
|
||||
function min(x,y) {
|
||||
return((x < y) ? x : y)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue