以下是三种高精度算术的模版:

高精度加法:

string s="0123456789",s1,s2;
int ss1[1005],ss2[1005],len; void dashu(string s1,int ss1[])
{
for(int i=s1.length()-1;i>=0;i--)
{
for(int j=0;j<10;j++)
{
if(s[j]==s1[i])
ss1[s1.length()-1-i]=j;
}
}
} void dashu_add(int ss1[],int ss2[])
{
int len1=s1.length(),len2=s2.length();
if(len1>len2)
len=len1;
else
len=len2;
for(int i=0;i<len;i++)
{
ss1[i]+=ss2[i];
if(ss1[i]>=10)
{
ss1[i+1]+=ss1[i]/10;
ss1[i]%=10;
}
}
int l=-1;
for(int i=len;i>=0;i--)
{
if(ss1[i]!=0)
{
l=i;
break;
}
}
if(l>=0)
{
for(;l>=0;l--)
cout<<ss1[l];
}
else
cout<<0;
}

相关题目链接:HDU 1002


高精度乘法:

void bignum_fac(int n)
{
int a[100000];
int m=1,b,d,i,j;
memset(a,0,sizeof(a));
a[1]=1;
for(i=2;i<=n;i++)
{
d=0;
for(j=1;j<=m;j++)
{
b=a[j]*i+d;
a[j]=b%100000;
d=b/100000;
}
if(d)
{
a[++m]=d;
}
}
cout<<a[m];
for(j=m-1;j>0;j--)
{
printf("%05d",a[j]);
}
printf("\n");
}

相关题目链接:HDU 1042


高精度除法:

char s[1005];
char division[1005];//存储进行高精度除法的数据 bool bignum_div(int x)
{
int tot=0,num=0;
for(int i=0;s[i];i++)
{
num=num*10+s[i]-'0';
division[tot++]=num/x+'0';
num%=x;
}
division[tot]='\0';//利于进行strcpy()
if(num==0) //有适合的除数
{
int i=0;
while(division[i]=='0')
i++;
strcpy(s,division+i);//比如49->07,那么下一轮s就变成7,多余的i个0都除掉
return true;
}
else return false;
}

相关题目链接:POJ 2325

高精度之+×÷的更多相关文章

  1. CSharpGL(28)得到高精度可定制字形贴图的极简方法

    CSharpGL(28)得到高精度可定制字形贴图的极简方法 回顾 以前我用SharpFont实现了解析TTF文件从而获取字形贴图的功能,并最终实现了用OpenGL渲染文字. 使用SharpFont,美 ...

  2. 递推+高精度 UVA 10497 Sweet Child Makes Trouble(可爱的孩子惹麻烦)

    题目链接 题意: n个物品全部乱序排列(都不在原来的位置)的方案数. 思路: dp[i]表示i个物品都乱序排序的方案数,所以状态转移方程.考虑i-1个物品乱序,放入第i个物品一定要和i-1个的其中一个 ...

  3. [Template]高精度模板

    重新写一下高精度模板(不要问我为什么) 自认为代码风格比较漂亮(雾 如果有更好的写法欢迎赐教 封装结构体big B是压位用的进制,W是每位长度 size表示长度,d[]就是保存的数字,倒着保存,从1开 ...

  4. Code[VS] 3123 高精度练习之超大整数乘法

    FFT 做 高精度乘法 #include <bits/stdc++.h> ); struct complex { double a, b; inline complex( , ) { a ...

  5. Java 高精度数字

    BigInteger // 高精度整数 BigDecimal //高精度小数  小数位数不受限制

  6. c++减法高精度算法

    c++高精度算法,对于新手来说还是一大挑战,只要克服它,你就开启了编程的新篇章,算法. 我发的这个代码并不是很好,占用内存很多而且运行时间很长(不超过0.02秒),但是很好理解,很适合新手 高精算法的 ...

  7. c++加法高精度算法

    c++高精度算法,对于新手来说还是一大挑战,只要克服它,你就开启了编程的新篇章,算法. 我发的这个代码并不是很好,占用内存很多而且运行时间很长(不超过1秒),但是很好理解,很适合新手 高精算法的本质就 ...

  8. [转]使用Stopwatch类实现高精度计时

    对一段代码计时同查通常有三种方法.最简单就是用DateTime.Now来进行比较了,不过其精度只有3.3毫秒,可以通过DllImport导入QueryPerformanceFrequency和Quer ...

  9. .net平台下获取高精度时间类

    原文:http://www.it118.org/specials/321869dd-98cb-431b-b6d2-82d973cd739d/d940a15c-0d36-4369-8de0-b07cf3 ...

  10. [vijos P1040] 高精度乘法

    如果这次noip没考好,完全是因为从7月29日之后就没有再写过程序了.说起来,真是一个泪流满面的事实… 那这样一个弱智题练手恢复代码能力,竟然还花了我两个晚上(当然不是两整个晚上…) 第一天TLE了, ...

随机推荐

  1. spring mvc @ResponseStatus 注解 注释返回中文乱码的问题

    前言 前文中讲到,使用@ResponseStatus注解,可以修饰一个异常类,在发生异常的时候返回指定的错误码和消息,在返回的 reason中包含中文的时候,就会出现中文乱码的问题 现象 reason ...

  2. C# winform调用东软动态库的问题

    在C# winform程序中调用东软的动态库ESActiveX.ocx 如果是引用ESActiveX.ocx,然后在代码中设置示例,调用就会报"灾难性错误" 如果在工具箱中点击右键 ...

  3. HTML5学习总结——HTML5入门与新增标签

    一.HTML5概要 1.1.为什么需要HTML5 概念: HTML5 是继 HTML4.01, XHTML 1.0 和 DOM 2 HTML 后的又一个重要版本, 旨在消除富 Internet 程序( ...

  4. laravel 添加第三方扩展库

    确定需要安装的位置 common.php测试代码 打开cmd 跳转到项目根目录下运行命令 composer install 打开文件 vender/composer/autoload_classmap ...

  5. python流程控制:while循环

    python编程中whihe语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务. while循环语句格式: while <判断条件>: 执行语句 count ...

  6. http请求的概念

    我曾多次阅读http协议,但是理解依然不深,在此,再次阅读,再次理解.加深两点:解析头部信息\r\n,分解头部和主体用\r\n\r\n.之所以一次请求会看到网络里有很多请求,是因为浏览器代替访问了多次 ...

  7. Python学习笔记——进阶篇【第九周】———协程

    协程 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是协程:协程是一种用户态的轻量级线程. 协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来 ...

  8. JSON文件处理

    牛X的JSON解析JSON字符串显示字典键值 public void ResolveJson() { //定义的JSON字符串,注意JSON的格式 string str = @” { “”Name”” ...

  9. 聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut

    原文请戳:http://blog.csdn.net/abcjennifer/article/details/8170687 聚类算法是ML中一个重要分支,一般采用unsupervised learni ...

  10. SQL 分组排序、CASE...WHEN...、是否为空 查询

    select  Id,CustomerCode,CustomerName,CreateId,CreateName,Phone,StatusName,(case when phone is not nu ...