首页 > 大数的减法函数--c语言

大数的减法函数--c语言

代码展示:   http://paste.ubuntu.com/23693598/

#include

#include

#include

char * largeDiffer(char *a,char *b){

/*  使用说明

传入的ab只能为整数

结果为a-b;返回的为字符指针,注意数组不要越界 ,要加头文件string.h

*/

int a_num[1000]={0},b_num[1000]={0};

char result[1000];//返回的结果

int a_len,b_len,i,j,cmp=-1,len,differ;

a_len=strlen(a);//计算a,b的长度

b_len=strlen(b);

for(i=0;i

a_num[a_len-i-1]=a[i]-'0';//a倒叙赋值

}

for(i=0;i

b_num[b_len-i-1]=b[i]-'0';//a倒叙赋值

}

if(a_len>b_len) cmp=1;//a大于b返回1    否则,返回-1

else if(a_len

else cmp=strcmp(a,b);

 

len=a_len>b_len?a_len:b_len;//返回较大值

if(cmp==1){//a为     大数的时候

for(i=0;i

if(a_num[i]

a_num[i]+=10;

if(a_num[i]<0){

a_num[i]=9;

a_num[i+1]=a_num[i+1]-1;

}

a_num[i+1]=a_num[i+1]-1;

differ=a_num[i]-b_num[i];

a_num[i]=differ;

}else{

differ=a_num[i]-b_num[i];

a_num[i]=differ;

}

}

} else if(cmp==-1){//第一个输入的为小数的时候

for(i=0;i

if(b_num[i]

b_num[i]+=10;

if(b_num[i]<0){

b_num[i]=9;

b_num[i+1]=b_num[i+1]-1;

}

b_num[i+1]=b_num[i+1]-1;

differ=b_num[i]-a_num[i];

a_num[i]=differ;//

}else{

differ=b_num[i]-a_num[i];

a_num[i]=differ;//

}

}

}

//输出格式

i=len-1;

while(a_num[i]==0) i--;//直到第一个不为0的数

if(cmp==-1) {

result[0]='-';

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

result[j]=a_num[i]+'0';

result[j]='';

} else{

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

result[j]=a_num[i]+'0';

result[j]='';

}

return result;

}

int main(){

char a[1000],b[1000];

gets(a);

gets(b);

char result[1000];

strcpy(result,largeDiffer(a,b));

printf("%s",result);

}

 

 

编程爱好者 248351598

转载于:https://www.cnblogs.com/banzhen/p/6227074.html

更多相关:

  • 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。 注意: num 的长度小于 10002 且 ≥ k。 num 不会包含任何前导零。 示例 1 : 输入: num = “1432219”, k = 3 输出: “1219” 解释: 移除掉三个数字 4, 3, 和 2形成一个新的最小的数...

  • Description We all know that Bin-Laden is a notorious terrorist, and he has disappeared for a long time. But recently, it is reported that he hides in Hang Zhou of Ch...

  • /*Name: NYOJ--811--变态最大值Author: shen_渊 Date: 17/04/17 15:49Description: 看到博客上这道题浏览量最高,原来的代码就看不下去了 o(╯□╰)o */#include #include #include u...

  • 生成唯一号:思路,根据yymmddhhmmss+自增长号+唯一服务器号( SystemNo)生成唯一码,总长度19,例如:1509281204550000101. public class UniqueNumber {     private static long num = 0;//流水号     private sta...

  • 一  字节流 1.1字节输出流OutputStream OutputStream是一个抽象类,操作的数据都是字节。 输出流中定义都是写write方法,如下图: 1.1.1 FileOutputStream类 OutputStream有很多子类,其中子类FileOutputStream可用来写入数据到文件。FileOutputStre...

  • MysqlHelper.class.php 1: