zoukankan      html  css  js  c++  java
  • 对于递推的简单思考

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

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

          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++;}
                }

  • 相关阅读:
    shell script
    Shell相关
    Linux文件目录磁盘基本知识
    Linux基础
    Spring事务
    跨域问题
    Ubuntu18.04安装MySQL
    如何掌握 Spring,Spring Boot 全家桶?系统学习 Spring 的大纲一份(实战教学)
    【问题解决】vim 打开文档后提醒 E325: ATTENTION 怎么办?
    vi 中按了 Ctrl+S 后死机不能动怎么办?
  • 原文地址:https://www.cnblogs.com/orangeblog/p/2216955.html
Copyright © 2011-2022 走看看