RosettaCodeData/Task/Hofstadter-Q-sequence/AWK/hofstadter-q-sequence.awk

23 lines
419 B
Awk
Raw Permalink Normal View History

2013-04-10 21:29:02 -07:00
#!/usr/bin/awk -f
BEGIN {
2014-01-17 05:32:22 +00:00
N = 100000
print "Q-sequence(1..10) : " Qsequence(10)
Qsequence(N,Q)
print "1000th number of Q sequence : " Q[1000]
2013-04-10 21:29:02 -07:00
for (n=2; n<=N; n++) {
2014-01-17 05:32:22 +00:00
if (Q[n]<Q[n-1]) NN++
2013-04-10 21:29:02 -07:00
}
2014-01-17 05:32:22 +00:00
print "number of Q(n)<Q(n+1) for n<=100000 : " NN
2013-04-10 21:29:02 -07:00
}
function Qsequence(N,Q) {
2014-01-17 05:32:22 +00:00
Q[1] = 1
Q[2] = 1
seq = "1 1"
2013-04-10 21:29:02 -07:00
for (n=3; n<=N; n++) {
2014-01-17 05:32:22 +00:00
Q[n] = Q[n-Q[n-1]]+Q[n-Q[n-2]]
seq = seq" "Q[n]
2013-04-10 21:29:02 -07:00
}
2014-01-17 05:32:22 +00:00
return seq
2013-04-10 21:29:02 -07:00
}