blob: 097a13c92d5de1582d72da4f95facb9433a45a62 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#!/usr/bin/gawk
# Challenge 104
#
# TASK #1 � FUSC Sequence
# Submitted by: Mohammad S Anwar
# Write a script to generate first 50 members of FUSC Sequence. Please refer to
# OEIS for more information.
#
# The sequence defined as below:
#
# fusc(0) = 0
# fusc(1) = 1
# for n > 1:
# when n is even: fusc(n) = fusc(n / 2),
# when n is odd: fusc(n) = fusc((n-1)/2) + fusc((n+1)/2)
function fusc(n) {
if (n==0)
return 0
else if (n==1)
return 1
else if ((n % 2)==0) # even
return fusc(n/2)
else # odd
return fusc((n-1)/2) + fusc((n+1)/2)
}
BEGIN {
num = ARGV[1]
for (i = 0; i < num; i++)
printf "%d ", fusc(i)
print ""
exit 0
}
|