这两种写法有什么区别
  • 板块灌水区
  • 楼主kyrin817
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/8/5 12:11
  • 上次更新2024/8/5 13:45:23
查看原帖
这两种写法有什么区别
1066750
kyrin817楼主2024/8/5 12:11

题目描述:

给你两个十进制数,数位最多有1000位,求他们的差

输入格式:

第一行输入一个整数

第二行输入一个整数

输出格式:

输出一个整数

样例输入:

12312312312142343254354354

4124354364565765456

样例输出: 12312308187787978688588898

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string a,b;
	cin>>a>>b;
	int n=a.size(),m=b.size();
	int x[1001]={0},y[1001]={0},z[1001]={0};
	if(n<m||n==m&&a<b){
		swap(a,b);
		cout<<"-";
	} 
	 reverse(a.begin(),a.end());
	 reverse(b.begin(),b.end());
	for(int i=0;i<n;i++)
		x[i]=a[i]-'0';
	for(int i=0;i<m;i++)
		y[i]=b[i]-'0';
	int len=max(m,n);
	for(int i=0;i<len;i++){
		z[i]+=x[i]-y[i];
		if(z[i]<0){
			z[i+1]-=1;
			z[i]+=10;
		}
	} 
	while(z[len-1]==0&&len>1){
		len--;
	}
	for(int i=len-1;i>=0;i--){
		cout<<z[i];
	}
	return 0;
}
	





#include<bits/stdc++.h>
using namespace std;
int main()
{
	string a,b;
	cin>>a>>b; 
	int x[1001]={0},y[1001]={0},z[1001]={0};
	//判断够不够减 
	if(a.size()<b.size()||a.size()==b.size()&&a<b){
		swap(a,b);
		cout<<"-";
	} 
	for(int i=0;i<a.size();i++)
		x[a.size()-i-1]=a[i]-'0';
	for(int i=0;i<b.size();i++)
		y[b.size()-i-1]=b[i]-'0';
	int len=max(a.size(),b.size());
	//相减 
	for(int i=0;i<len;i++){
		z[i]+=x[i]-y[i];
		if(z[i]<0){
			z[i+1]-=1;
			z[i]+=10;
		}
	}
	
	//输出 
	while(z[len-1]==0&&len>1)len--;
	for(int i=len-1;i>=0;i--){
		cout<<z[i];
	}
	return 0;
}
	





2024/8/5 12:11
加载中...