社区讨论

help!80分!

P2142高精度减法参与者 5已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@mi7xyo2e
此快照首次捕获于
2025/11/21 05:26
4 个月前
此快照最后确认于
2025/11/21 05:26
4 个月前
查看原帖
CPP
#include<stdio.h>
#include<iostream>
#include<string.h>
/*
	Name:
	Copyright:
	Author:yzc
	Date: 04/05/19 12:43
	Description:
*/

#define rt return
char a[10001],b[10001];
int x[10002],y[10002];
int l;
bool __if_()
{
 if(strlen(a)<strlen(b))
 rt true;
 else
 if(strlen(a)>strlen(b))
 ;
 else
 for(int i=strlen(a);i>=0;i--)
  if(a[i]<b[i])rt true;
 return false;
}
int main()
{
	scanf("%s%s",a,b);
	if(__if_()){printf("-");std::swap(a,b);}
	for(int i=0,j=strlen(a);i<=j;i++,j--)
	{
		x[i]=a[j]-48;
		x[j]=a[i]-48;
	}
	for(int i=0,j=strlen(b);i<=j;i++,j--)
	{
		y[i]=b[j]-48;
		y[j]=b[i]-48;
	}
	l=strlen(a);
	l++;
	for(int i=1;i<=l;i++)
	x[i]-=y[i];
	for(int i=1;i<=l;i++)
	if(x[i]<0){
		x[i+1]-=1;
		x[i]+=10;
	}
	if(!x[l]&&l!=2)l--;
	for(int i=l;i>=1;i--)
	printf("%d",x[i]);
	return 0;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...