加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数减法

发布时间:2020-12-14 01:52:40 所属栏目:大数据 来源:网络整理
导读:这个程序比较多,但是思路很简单,只要求取大数减小数,如果是小数减大数,转换成大数减小数,输出负号 void sub(char a[],char b[]){int alen = strlen(a);int blen = strlen(b);int num1[LEN];int num2[LEN];for (int i = 0; i LEN; i++){num1[i] = 0;num2

这个程序比较多,但是思路很简单,只要求取大数减小数,如果是小数减大数,转换成大数减小数,输出负号

void sub(char a[],char b[]){
	int alen = strlen(a);
	int blen = strlen(b);

	int num1[LEN];
	int num2[LEN];
	for (int i = 0; i < LEN; i++){
		num1[i] = 0;
		num2[i] = 0;
	}

	for (int i = alen - 1,j = 0; i >= 0; i--){
		num1[j++] = a[i] - '0';
	}
	for (int i = blen - 1,j = 0; i >= 0; i--){
		num2[j++] = b[i] - '0';
	}

	int flag = 0;
	if (alen > blen){
		for (int i = 0; i < LEN; i++){
			num1[i] -= num2[i];
		}
		for (int i = 0; i < LEN; i++){
			if (num1[i] < 0){
				num1[i+1] -= 1;
				num1[i] += 10;
			}
		};
	}

	if (alen < blen){
		for (int i = 0; i < LEN; i++){
			num2[i] -= num1[i];
		}
		for (int i = 0; i < LEN; i++){
			if (num2[i] < 0){
				num2[i+1] -= 1;
				num2[i] += 10;
			}
		}
		flag = 1;
	}
		
	int ti;
	if (alen == blen){
		for (int i = 0; i < LEN; i++){
			if (a[i] != b[i]){
				ti = i;
				break;
			}
			if (i == LEN - 1)
				cout << 0 << endl;
		}
		if (a[ti] > b[ti]){
			for (int i = 0; i < LEN; i++){
				num1[i] -= num2[i];
			}
			for (int i = 0; i < LEN; i++){
				if (num1[i] < 0){
					num1[i + 1] -= 1;
					num1[i] += 10;
				}
			}
		}
		
		else{
			for (int i = 0; i < LEN; i++){
				num2[i] -= num1[i];
			}
			for (int i = 0; i < LEN; i++){
				if (num2[i] < 0){
					num2[i + 1] -= 1;
					num2[i] += 10;
				}
			}
			flag = 1;
		}
	}
		
	
	int i;
	if (flag == 0){
		for (i = LEN - 1; i > 0; i--){
			if (num1[i] != 0)
				break;
		}
		for (; i >= 0; i--){
			cout << num1[i];
		}
		cout << endl;
	}
	if (flag == 1){
		cout << "-";
		for (i = LEN - 1; i > 0; i--){
			if (num2[i] != 0)
				break;
		}
		for (; i >= 0; i--){
			cout << num2[i];
		}
		cout << endl;
	}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读