zoukankan      html  css  js  c++  java
  • 高精度模板(未完待续)

    高精度题目(持续更新)

    (1.) 国王游戏

    (2.) (Hanoi) 双塔问题(需要该篇博文的阅读密码)

    高精 (+) 低精

    $View$ $Code$ ```cpp int lens=1,sum[MAX]={0,1}; inline void add(int x) { int tmp=1; sum[1]+=x; while(9

    高精 ( imes) 低精

    细节: (sum[i]=tmp mod 10) 而不是 (sum[i] mod =10) ,是因为由现在还没进的位数取最后一位而得,不是本位取最后一位而得。
    (写法一,更稳定)

    $View$ $Code$ ```cpp int lens=1,sum[MAX]={0,1}; inline void mul(int x) { int tmp=0; for(register int i=1;i<=lens;i++) sum[i]*=x; for(register int i=1;i<=lens;i++) { tmp+=sum[i]; sum[i]=tmp%10; tmp/=10; } while(tmp) { lens++; sum[lens]=tmp%10; tmp/=10; } } ```

    (写法二,更快)

    $View$ $Code$ ```cpp int lens=1,sum[MAX]={0,1}; inline void mul(int x) { int tmp=0; for(register int i=1;i<=lens;i++) sum[i]*=x; for(register int i=1;i<=lens;i++) { sum[i]+=tmp; if(sum[i]>9) { tmp=sum[i]/10; sum[i]%=10; } else tmp=0; } while(tmp) { sum[++lens]=tmp%10; tmp/=10; } } ```

    高精 (div) 低精

    细节:竖式上的进位值 (tmp) 要定义、赋值,当前答案数组 (ans) 要及时清空且无需先赋值。

    $View$ $Code$
    
    int lens=1,lena=1,sum[MAX]={0,1},ans[MAX];
    inline void div(int x)
    {
    	memset(ans,0,sizeof(ans));
    	lena=lens;
    	int tmp=0;
    	for(register int i=lena;i;i--)
    	{
    		tmp*=10;
    		tmp+=sum[i];
    		if(tmp>=x)
    		{
    			ans[i]=tmp/x;
    			tmp%=x;
    		}
    	}
    	while(ans[lena]==0)
    	{
    		if(lena==1)
    			break;
    		lena--;
    	}
    }
    

    高精两数大小比较

    细节:当前答案数组 (ans) 无需先赋值,最大值数组 (maxn) 要先赋值。

    $View$ $Code$ ```cpp int lenm=1,lena=1,maxn[MAX]={0,1},ans[MAX]; inline void cmp1() { if(lena>lenm) { for(register int i=lena;i;i--) maxn[i]=ans[i]; lenm=lena; } else if(lena==lenm) { for(register int i=lena;i;i--) { if(maxn[i]

    高精数输出

    细节:最大值数组 (maxn) 要先赋值。

    $View$ $Code$
    
    int lenm=1,maxn[MAX]={0,1};
    inline void write()
    {
    	for(register int i=lenm;i;i--)
    		printf("%d",maxn[i]);
    }
    
  • 相关阅读:
    第六周学习总结
    20165227 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
    第五周学习总结
    20165227 20165228结对学习感想
    第四周课堂测试补做
    第四周作业
    20165227第三周学习总结
    第二周学习总结
    20165304《JAVA程序设计》第四周学习总结
    20165304 2017-2018-2 《Java程序设计》第3周学习总结
  • 原文地址:https://www.cnblogs.com/Peter0701/p/11237076.html
Copyright © 2011-2022 走看看