大数运算

来源:互联网 发布:名片制作软件 绿色版 编辑:程序博客网 时间:2024/05/01 04:32
所谓的大数运算其实就是一个竖式运算例如:
123
      +  1
--------------
124

所以我们写的程序就是想办法来构造竖式

#include<stdio.h>#include<string.h>void main(){char str1[100]="123458156156";char str2[100]="1234852425454";int a[100];int b[100];int res[100];//创建结果栈,因为结果是倒着计算出来的;int i,la,lb,pt;la=strlen(str1);//计算数值的长度lb=strlen(str2);for(i=0;i<la;i++){a[i]=str1[i]-'0';}for(i=0;i<lb;i++){b[i]=str2[i]-'0';}int j=lb-1;i=la-1;int temp;int jinwei=0;pt=0;while(i>=0&&j>=0)//相同的位数进行相加{temp=a[i]+b[j]+jinwei;res[pt]=temp%10;pt++;jinwei=0;jinwei=temp/10;i--;j--;}
余下位放入结果栈中
if(i>=0){for(;i>=0;i--){res[pt]=a[i]+jinwei;jinwei=0;pt++;}}if(j>=0){for(;j>=0;j--){res[pt]=b[j]+jinwei;jinwei=0;pt++;}}//栈输出for(i=pt-1;i>=0;i--){printf("%d",res[i]);}putchar('\n');}


1 0
原创粉丝点击