2013-12-07 回答

以前我也做过一个大整数程序,2000!,不过那里面没有减法。做这个减法真让花时间啊。

#include

#include

#include

#define max 4000/*数位上限*/

dd(char *a)

{

char t[max];

int i,j;

for(i=0;i {

if(a[i]==null)

{

for(j=0;i>0;j++,i--)

{

t[j]=a[i-1];

}

strncpy(a,t,j);

break;

}

}

}

add1(char *a,char *b,int n,char *c)

{

int n;

if(*a!=null&&*b!=null)

n=*a-'0'+*b-'0'+n;

else if(*a==null&&*b!=null)

n=*b-'0'+n;

else if(*a!=null&&*b==null)

n=*a-'0'+n;

else

n=n;

*c=(n%10)+'0';

n=n/10;

if(*(a+1)!=null||*(b+1)!=null||n!=0)

{

add1(a+1,b+1,n,c+1);

}

}

addab(char *a,char *b,char *c)

{

dd(a);

dd(b);

dd(c);

add1(a,b,0,c);

dd(a);

dd(b);

dd(c);

}

d_(char *a)

{

int i;

for(i=0;a[i]!=null;i++)

{

a[i]=a[i+1];

}

}

udg1(char *a,char *b,int n,char *c)

{

int n;

if(*b==null)

{

n=*a-'0'-n;

n=0;

}

else

{

if(*a>=(*b+n))

{

n=*a-*b-n;

n=0;

}

else

{

n=*a+10-*b-n;

n=1;

}

}

*c=n+'0';

if(*(a+1)!=null)

udg1(a+1,b+1,n,c+1);

}

udg(char *a,char *b,char *c)

{

int i;

if((strcmp(a,b)>0&&strlen(a)==strlen(b))||strlen(a)>strlen(b))

i=1;

else if((strcmp(a,b)<0&&strlen(a)==strlen(b))||strlen(b)>strlen(a))

i=-1;

else

i=0;

dd(a);

dd(b);

dd(c);

if(i==1)

udg1(a,b,0,c);

else if(i==-1)

{

udg1(b,a,0,c);

for(i=0;i {

if(c[i]==null)

{

c[i]='-';

break;

}

}

}

else

*c='0';

dd(a);

dd(b);

dd(c);

}

add_(char *c)

{

int i;

char t1,t2;

t1=c[0];

t2=c[1];

c[0]='-';

for(i=1;t1!='\0';i++)

{

c[i]=t1;

t1=t2;

t2=c[i+1];

}

}

main()

{

char a[max]={null},b[max]={null},c[max]={null};

printf("输入两个数:\n");

scanf("%s",a);

getchar();

scanf("%s",b);

getchar();

if(a[0]!='-'&&b[0]!='-')

{

addab(a,b,c);

}

else

{

if(a[0]=='-'&&b[0]!='-')

{

d_(a);

udg(b,a,c);

}

else if(a[0]!='-'&&b[0]=='-')

{

d_(b);

udg(a,b,c);

}

else

{

d_(b);

d_(a);

addab(a,b,c);

add_(c);

}

}

printf("%s\n",c);

getchar();

}

c语言怎么进行大整数加法,c语言 大整数加法相关推荐

  1. C语言入门,编写程序,输出两个整数中的较大值。

    #include <stdio.h> // 定义函数,求两个整数中的较大值 int max(int x, int y) { int z; /*说明变量 */if(x > y) z = ...

  2. 大整数乘法---C语言实现

    一.前言 如上 二.内容 在科学计算中,无法计算非常大的整数,于是就有大整数乘法问题. (int存放4字节,float-已有的数据类型数据范围有限),硬件无法实现,只能靠软件(代码)实现了. 三.代码 ...

  3. c语言无符号扩展,深入理解计算机系统(2.4)---C语言的有符号与无符号、二进制整数的扩展与截断...

    开篇请各位猿友允许LZ啰嗦几句,最近一直在写计算机系统原理这系列文章,也已经下定决心要把这本书的内容写完.主要目的其实是为了巩固LZ的理解,另外也想把这些内容分享给猿友们,毕竟LZ觉得这些内容对程序猿 ...

  4. 语言取10的整数倍_C语言结构体用法很多,坑也很多

    C语言可谓是编程界的传奇语言,历经几十年,依然排名前列. 前不久还写了一篇文章<2019年11月C语言接近Java>,说了C语言是比较受欢迎的一种语言,有望在年底超过JAVA,再次成为第一 ...

  5. 怎样用才c语言定义一个三位数,怎样编写一个c语言程序计算任意输入一个3位数的整数的各位数字之和。要求主函数包括输入输出和调用该函数。...

    点击查看怎样编写一个c语言程序计算任意输入一个3位数的整数的各位数字之和.要求主函数包括输入输出和调用该函数.具体信息 答:#include void main(){ int a,sum=0; pri ...

  6. PTA 基础编程题目集 7-33 有理数加法 C语言

    PTA 基础编程题目集 7-33 有理数加法 C语言 本题要求编写程序,计算两个有理数的和. 输入格式: 输入在一行中按照a1/b1 a2/b2的格式给出两个分数形式的有理数,其中分子和分母全是整形范 ...

  7. C语言结构联合位字段知识体系总结大学霸IT达人

    C语言结构联合位字段知识体系总结大学霸IT达人 C语言的基础类型中只能去定义单一类型的变量用于指代数据,但在现实生活中我们常常要处理的数据却会包含多种类型的数据. 例如,公司员工的信息管理,每个员工的 ...

  8. Python 是怎么火起来的? 转载 2018年01月12日 00:00:00 133 图:Python 之父 Guido 正在设计 Python 语言,结果家里突然潜入一条大蟒蛇,一番激烈斗争,大

    Python 是怎么火起来的? 转载 2018年01月12日 00:00:00 133 图:Python 之父 Guido 正在设计 Python 语言,结果家里突然潜入一条大蟒蛇,一番激烈斗争,大蟒 ...

  9. 大数据场景中语言虚拟机的应用和挑战

    点击上方蓝字关注我们 大数据场景中语言虚拟机的应用和挑战 吴明瑜1,2, 陈海波1,2, 臧斌宇1,2 1 领域操作系统教育部工程研究中心,上海 200240 2 上海交通大学软件学院并行与分布式系统 ...

  10. python整数池_对Python中小整数对象池和大整数对象池的使用详解

    1. 小整数对象池 整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间. Python 对小整数的定义是 [-5, 256] 这些整数对象是提 ...

最新文章

  1. linux命令行大全 笔记,分享|4 个 Linux 下的命令行笔记程序
  2. JAVA中类的访问修饰符的作用范围
  3. jinja2 {{}} href 双大括号
  4. mybatis的Example[Criteria]的使用
  5. 手机系统安装打印机服务器错误代码,OKI打印机报错?各型号代码故障解决方法...
  6. python-列表包字典-根据字典的某一个键的值来进行排序
  7. 微信小程序|开发实战篇之八-list列表组件及其子组件
  8. mysql InnoDb存储引擎索引
  9. Illumina联手IBM Watson Health解读癌症基因谱
  10. python有趣小程序-第一个有趣的python小程序
  11. tensorflow实现对彩色图像的均值滤波
  12. DHTML【3】--HTML
  13. 动画图解:十大经典排序算法动画与解析,看我就够了!(配代码完全版)
  14. 记一次勒索病毒攻击事件的处理过程
  15. ionic 实时调试android手机
  16. jquery实现返回顶部功能
  17. OSG笔记一:在Win7、VS2010下配置OSG3.4
  18. 苹果手机解压缩软件_360压缩大师360 推出的免费 macOS 解压缩软件
  19. java 双屏显示_程序员,你双屏了吗?
  20. SAP ERP数据表清单

热门文章

  1. NATURAL LANGUAGE INFERENCE OVER INTERACTION SPACE
  2. 【译】颜色空间 REC.709 vs sRGB的
  3. OpenAI 的外包数据标注员,时薪不足2美元,称工作是“精神创伤”
  4. 【闪电侠学netty】第4章 服务端启动流程
  5. Vnode-Vdom-diff算法
  6. 分布式存储 分布式处理 古老概念随想
  7. Docker安装及修改镜像仓库地址
  8. java.lang.NoClassDefFoundError: net/sf/ehcache/CacheManager
  9. 公务员笔试之三段论解题技巧
  10. U盘刻录14.10镜像出问题的解决方法