社区讨论
20分,高精度减法,求助
P2142高精度减法参与者 7已保存回复 17
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 17 条
- 当前快照
- 1 份
- 快照标识符
- @mi8609yz
- 此快照首次捕获于
- 2025/11/21 09:11 4 个月前
- 此快照最后确认于
- 2025/11/21 09:47 4 个月前
rt
求一点数据
不用帮我改正代码,求我能让我代码错误的数据
谢谢大佬们
CPP#include<cstdio>
#include<algorithm>
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
string str1,str2;
int c[10010];
int Compare(int a[],int b[])//1:a>b;2:a<b;0:a=b
{
if(a[0]<b[0])
return 2;
if(a[0]>b[0])
return 1;
for(int i=a[0];i>=1;i--)
{
if(a[i]>b[i])
return 1;
if(a[i]<b[i])
return 2;
}
return 0;
}
void Minus(int a[],int b[])//a>b
{
c[0]=a[0];
int temp=0;
for(int i=1;i<=c[0];i++)
{
c[i]=((10+a[i]-b[i])%10-temp+10)%10;
if(a[i]<b[i])
temp=1;
}
}
void Printf()
{
bool flag=false;
for(int i=c[0];i>=1;i--)
{
if(!flag && c[i]!=0)
{
printf("%d", c[i]);
flag=true;
}
else if(flag)
printf("%d", c[i]);
}
}
int main()
{
int a[10010],b[10010];
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
cin>>str1>>str2;
a[0]=str1.length();
b[0]=str2.length();
for(int i=1;i<=a[0];i++)
a[i]=str1[a[0]-i]-'0';
for(int i=1;i<=b[0];i++)
b[i]=str2[b[0]-i]-'0';
if(Compare(a,b)==1)
Minus(a,b);
if(Compare(a,b)==2)
{
Minus(b,a);
printf("-");
}
if(Compare(b,a)==0)
{
printf("0");
return 0;
}
Printf();
return 0;
}
回复
共 17 条回复,欢迎继续交流。
正在加载回复...