U280801 生命密码
题目描述
我送给了string一粒二叉树种子,这棵树有一个自己的生命密码,这个密码可以生成一个生命密钥,而这棵树每天都会按照自己的生命密钥生长。
一个生命密码变成生命密钥的过程是这样的:
首先将这个数加入生命密钥,如果它是偶数,则将他的1/2也加入生命密钥,并将它改为自己的一半;如果是奇数,则将他的3倍加一也加入密钥,并将自己改为刚刚说过的这个数,直至这个数为1。例如生命密码为3时,生命密钥为:
3 10 5 16 8 4 2 1
我们将生命密钥称为数组a,长度称为l,那么那么这棵树的生长可以视为执行l次f(a[i])
f(k)的定义是这样的:
我们设二叉树的节点数为n,当k>n且k%n=0时视为执行f(n)
当k>n且k%n>0时视为执行f(k%n)
当k
输入格式
三个整数,为生命密码,k和一个节点编号
输出格式
三个整数,二叉树的高度,输入中节点的左儿子和右儿子(没有输出0)
说明/提示
最终高度小于100,生命密钥长度小于300,k