对于递推的简单思考

       最近做了几个关于递推的题目,基本的感触就是这玩意,对排列的要求高,而且还要有一颗善于发现规律的眼睛,当然这少不了数学洞察力。今天上午做了一个有关卡特兰数的题,当然涉及到卡特兰数一般就会涉及到大数的运算。今天最大的收获就是改变以往对大数运算的方法,基于以前对大数的模拟方法,进行了革命性的改进(以前见到大数运算就头疼),这里总结一下:

         以前模拟大数运算总是用字符串,这也是导致效率低下的主要原因。今天改用整形数组,数组的每个元素保存一定的位数(以前用字符串模拟时,一个元素只能表示一位),这样就不要进行逐位模拟,每次可以运算一定说量的位数。这样也提高运算的效率。这种模拟大数的方法尤其对求大数的阶乘“疗效”更是显著。

      big[0]=n;flow=0;flag=1;//
        for(i=n-1;i>0;i--)
            {
                flow=0;
                for(j=0;j<flag;j++)
                {
                    sum=big[j]*i+flow;
                    flow=sum/100000;
                    big[j]=sum%100000;
                }if(flow){big[j]=flow;flag++;}
            }

原文地址:https://www.cnblogs.com/orangeblog/p/2216955.html