高精度减法(易记)

#include<bits/stdc++.h>
using namespace std;
char s1[10090],s2[10090],s3[10090];
int a[10090],b[10090],c[10090];
int flag = 0; 
bool compare(char s1[],char s2[]){//如果s1 >= s2返回true,否则返回false 
	int u = strlen(s1),v = strlen(s2);
	if(u != v) return u > v;
	for(int i=0;i<u;i++){
		if(s1[i] != s2[i]) return s1[i] > s2[i];//判断两个字符哪个大 
	}
	return true;
}
int main(){
	int la,lb,lc;
	scanf("%s",&s1);
	scanf("%s",&s2);
	if(!compare(s1,s2)){//如果s1<s2,则交换 
		flag = 1;
		strcpy(s3,s1);
		strcpy(s1,s2);
		strcpy(s2,s3);
	} 
	
	la = strlen(s1);
	lb = strlen(s2);
	for(int i=0;i<la;i++) a[la-i] = s1[i] - '0';
	for(int i=0;i<lb;i++) b[lb-i] = s2[i] - '0';
	lc = max(la,lb);//相减得到的长度最多为两个数里面长度较大的 
	for(int i=1;i<=lc;i++){
		if(a[i] < b[i]){
			a[i+1]--;
			a[i] += 10;
		}
		c[i] = a[i] - b[i];
	}
	
	while(c[lc] == 0 && lc > 1) lc--; 
	if(flag) printf("-");
	
	for(int i=lc;i>0;i--) printf("%d",c[i]);
	
	return 0;
} 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值