大数相加

    xiaoxiao2025-04-19  11

    #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]); } }
    转载请注明原文地址: https://ju.6miu.com/read-1298220.html
    最新回复(0)