本题的求(1,100)的问题给出了整个题目的思路,本题涉及解递推(归)方程
设f(n,i,j)为从第n行开始(i,j)的位置,n,i,j从0开始,则从(i,j)的当前行开始(i,j)所在的位置
f(i,i,j) = (j-i-1)*2+1,j-i-1是第二部分不含自己的个数,乘以2表示合第3部分的个数,+1是加上第一部分
f(i-1,i,j) = 2*f(i,i,j)+1+1,从上一行开始到(i,j)的个数,(i,j)相对于第i-1行处于第3部分,第一个1是上一行的第1部分,第二个1是相对于(i,j)的第二部分的那个数(因为先取第二部分,再取第三部分)
f(i-2,i,j) = 2*f(i-1,i,j)+2 = 2*(2*f(i,i,j)+2)+2,从上上一行开始到(i,j)的个数
...
f(0,i,j) = 2*f(1,i,j)+2 = 2*(2*f(2,i,j)+2)+2 = ... = 2+2^2+...+2^i+2^i*f(i,i,j) = 2^i+(j-i)*2^(i+1)-2,直到第0行
特殊处理每行第一个
f(i,i,i) = 0
f(i-1,i,i) = 2*f(i,i,i)+2
f(i-2,i,i) = 2*f(i-1,i,i)+2 = 2*(2*f(i,i,i)+2)+2
...
f(0,i,i) = 2+..+2^i = 2^(i+1)-2