大数加法
发布时间:2020-12-14 01:59:55 所属栏目:大数据 来源:网络整理
导读:思想 :用数组来代替基本类型 来实现大数加法 代码实现 // main.c // 大数加法 // // Created by devilthrone on 16/3/13. // Copyright (c) 2016年 devilthrone. All rights reserved. // #include stdio.h void add( char a[], char b[], char d[]) { char
思想:用数组来代替基本类型 来实现大数加法
// main.c
// 大数加法
//
// Created by devilthrone on 16/3/13.
// Copyright (c) 2016年 devilthrone. All rights reserved.
//
#include <stdio.h>
void add(char a[],char b[],char d[])
{
char c[10001];
int lengthA = strlen(a);
int lengthB =strlen(b);
int len = lengthA>lengthB?lengthA:lengthB;
len++;
int i ;
c[0] = ' ';
for (i=1; i<=len; i++) {
c[i]='0';
}
//将A和B中的元素逆序输入C中并相加
//0对应ASCII码 48 9对应ASCII码57
for(i = 1 ; i <= lengthA ; i++)
c[i]+=a[lengthA-i] - 48;
for(i = 1; i <= lengthB ;i++)
c[i]+=b[lengthB-i] - 48;
//某一位上数字大于9 则进位
for( i = 0 ; i<=len ; i++){
if(c[i]>57){
c[i]-=10;
c[i+1]++;
}
}
//剔除首部的0
for(i = len;i>1;i--)
if(c[i]==48)len--;
else
break;
for(i = 0 ; i <= len;i++)
d[i] = c[len-i];
}
int main(int argc,const char * argv[]) {
// insert code here...
char a1[] ="1234567811";
char a2[] ="2345678901";
char d[]={0};
add(a1,a2,d);
printf("%s",d);
return 0;
}
3580246712 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |