大数相加
发布时间:2020-12-14 01:37:25 所属栏目:大数据 来源:网络整理
导读:#include stdio.h#include stdlib.h#include string.h#define MAX 10000000;//大数相加 void main(){char num1[MAX];char num2[MAX];int length1,length2;while(scanf("%s%s",num1,num2)!=EOF){length1=strlen(num1);length2=strlen(num2);caladd(num1,num2,
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 10000000; //大数相加 void main(){ char num1[MAX]; char num2[MAX]; int length1,length2; while(scanf("%s%s",num1,num2)!=EOF){ length1=strlen(num1); length2=strlen(num2); caladd(num1,num2,length1,length2); } return 0; } void caladd(char *num1,char *num2,int length1,int length2) { int result[MAX] = {0},a[MAX] = {0},b[MAX] = {0},c[MAX]; c[0] = 0; if(num1==NULL||num2==NULL)return ; if(length1<=0||length2<=0) return ; int k = length1>length2?length1:length2; //字符串转化为整形 for(int i=0;i<length1,++i) a[i] = num1[length1-i-1]-'0'; for(int i=0;i<length2,++i) b[i] = num2[length2-i-1]-'0'; //在看谁的大 for(int i=0;i<k;++i){ c[i]+=(a[i]+b[i])%10;//如果a[i]+b[i]<10 那么c[i] = a[i]+b[i]; c[i+1] =(a[i]+b[i])/10; if(c[i]!=0)k++;//需要进位 } //倒序输出相加的结果 for(i=k-1;i>=0;--i){ printf("%d",c[i]); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |