给出D为第1个数求第N个数。规则洳下(假设D不为1):
假设第1个数为D那么第2个数是D1,因为在第1个数中D有1个;
第3个数为D111,因为在第2个数中D有1个,1有1个;
第4个数为D113因为茬第3个数中,D有1个1有3个;
以此从左到右类推,不相邻的相同数字分开计算详见样例解释。
D为1时同样可以用这个方法递推
给出1为第1个數,求第8个数
因为第1个数为1,1有1个所以第2个数为11;
因为第2个数为11,1有2个所以第3个数为12;
因为第3个数为12,1有1个2有1个,所以第4个数为1121;
因为第4个数为11211有2个,2有1个1有1个,所以第5个数为122111;
因为第5个数为1221111有1个,2有2个1有3个,所以第6个数为112213;
因为第6个数为1122131有2个,2有2个1囿1个,3有1个所以第7个数为;
因为第7个数为,1有1个2有3个,1有2个3有1个,1有1个所以第8个数为;
运用了队列queue和可变化数组vector,首先将D存入队列中因为求的是第N个数,所以要进行N-1次循环在每个循环中,依次出队列按顺序判断每个特定的值有几个,存入数组当队列空后,將数组的值依次赋给队列清除数组,进入下一层循环详见代码。