高精度四则运算 大数加减乘除

这篇博客介绍了如何进行高精度计算,包括高精度加法、减法、乘法和除法。通过示例展示了输入两个正整数,计算它们的和、差、积和商余数的方法,数据范围覆盖了长整数的处理,适合于c语言编程爱好者学习。
摘要由CSDN通过智能技术生成

791 高精度加法
给定两个正整数,计算它们的和。

输入格式
共两行,每行包含一个整数。

输出格式
共一行,包含所求的和。

数据范围
1≤整数长度≤100000
输入样例:
12
23
输出样例:
35

#include <stdio.h>
#include <string.h>
#define lenMAX 100000
int main(){
    char t1[lenMAX+1],t2[lenMAX+1];
    scanf("%s %s",t1,t2);
    int n=strlen(t1),m=strlen(t2),carry=0,t,i,j,a[n],b[m],c[lenMAX+1],k=0;
    for(i=0;i<n;i++) a[i]=t1[i]-'0';
    for(j=0;j<m;j++) b[j]=t2[j]-'0';
    while(i>0 && j>0){
        t=a[--i]+b[--j]+carry;
        c[k++]=t%10;
        carry=t/10;
    }
    while(i>0){			//二者最多有一个右剩余
        t=a[--i]+carry;
        c[k++]=t%10;
        carry=t/10;
    }
    while(j>0){
        t=b[--j]+carry;
        c[k++]=t%10;
        carry=t/10;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
考虑到易语言很多的命令并不怎么高效,况且还有很多算法和据结构系统内置没有,作为一位OIer(OI:Olympic in Informatics),于是我就提供一个简易的高效算法/据结构模块,全部自己写的,函支持英文命令,代码没有抄袭任何人现成的代码,我只是将在C++算法竞赛中所学到的东西用易语言写出来而已,部分内容参考了一些文献。 举个例子,你们就知道为什么说算法非常重要: 对超大数组进行排序,如果你用传统的选择排序(O(n^2))对一个超大数组进行排序,你恐怕得等几分钟,而采用二分思想的快速排序(最坏情况O(nlogn),最好情况O(n)),最好情况只需要很短时间。量化一下,假如组内有1024个元素,传统的选择排序本来需要1024*1024=1048576次循环,而使用快速排序,最坏情况只需要1024*log1024=10240次,最好情况只需要1024次,节省了大量时间! 参传入的下标没有查验是否越界,所以请务必保证传入的参合法,否则出错! 时间仓促,暂时先写这么多,后续慢慢添加。想要什么的话回帖注明,在我的精力和能力范围限度之内的话我会考虑在后续版本实现。只提供易语言官方支持库中没有的。 当前已支持算法:快速排序、稳定排序、取最大、取最小、向下取整、向上取整、反转字节集、反转文本 当前已支持据结构:大根堆、小根堆、并查集 当前计划后续版本更新内容:高精度类型(开发中)、KMP算法字符串匹配、AC自动机算法字符串匹配 高精度类演示: 时间有限,目前只实现了同号的加法 如果你要计算777+555的话,易语言本身的核心支持库已足够,但是如果你要计算77...7(100个7)+55...5(100个5)的话呢?就算长整也满足不了你!这时候就是高精度类上场的时候了。 版本更新日志: -----2016/3/20 1.6----- 1、修复bug(字符串反转、文本反转、其他bug) 2、高精度类实现同号加法 -----2016/3/13 1.5----- 1、新增快速排序_优化、插入排序 2、改进快速排序、稳定排序 -----2016/2/23 1.4----- 1、修复排序的一处导致重复比较的bug 2、高精度初步成型,功能暂时未写,暂时不能使用 -----2016/2/6 1.3----- 1、开源 2、添加二叉树(已弃用) -----2016/2/6 1.2----- 1、修复向上取整和向下取整对于负的运算结果错误的bug -----2016/2/6 1.1----- 1、新增据结构:并查集、大根堆、小根堆。妈妈再也不用担心我不会写堆排序了~~~ -----2016/2/5 1.0----- 1、新增算法:快速排序、稳定排序、取最大、取最小、向下取整、向上取整、反转字节集、反转文本 2、函支持英文调用,更方便 hez2010

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值