URL: https://oeis.org/A379183/a379183.go.txt
package main
import (
"fmt"
"github.com/xlab/treeprint"
"strconv"
)
const max int = 50;
func callTree(n int) treeprint.Tree {
b := make([]int, n+1);
copy(b, []int{0, 0, 1, 1});
tree := treeprint.New();
ptrs := make(map[int]*treeprint.Tree);
var key, val string
for i := 1; i < 4; i++ {
key = strconv.Itoa(i);
val = strconv.Itoa(b[i]);
branch := tree.AddBranch("a("+key+")="+val);
ptrs[i] = &branch
}
var lkbk int;
var brnc treeprint.Tree;
for i:=4; i < n+1; i++ {
lkbk = b[i-2];
b[i] = i-b[lkbk];
brnc = *ptrs[lkbk];
key = strconv.Itoa(i);
val = strconv.Itoa(b[i]);
branch := brnc.AddBranch("a("+key+")="+val);
ptrs[i] = &branch;
};
return tree
}
func main() {
fmt.Println(
callTree(max))
}