#6测试点,和答案输出一样为什么会WA?
查看原帖
#6测试点,和答案输出一样为什么会WA?
792364
hzx198楼主2023/12/23 23:48
#include <bits/stdc++.h>
#define MAX_DIG 10099
#define mst(v) memset(&v,0,sizeof(v))
using namespace std;
struct N {int v[MAX_DIG],d;};
int cmp(N a, N b) {
  if (a.d>b.d) return 1;
  else if (a.d<b.d) return -1;
  for (int i=0; i<a.d; i++)
    if (a.v[i]>b.v[i]) return 1;
    else if (a.v[i]<b.v[i]) return -1;
  return 0;
}
N sub(N a, N b) {
  int i;
  for (i=0; i<b.d; i++) a.v[i]-=b.v[i];
  for (i=0; i<a.d; i++)
    if (a.v[i]<0) a.v[i+1]--, a.v[i]+=10;
  for (i=a.d-1;a.v[i]==0;i--) a.d--;
  return a;
}
N read(void) {
  N a;
  mst(a);
  string s;
  cin>>s;
  a.d=s.size();
  for (int i=0; i<a.d; i++) a.v[a.d-i-1]=s[i]-'0';
  return a;
}
void write(N a) {
  if (a.d==0) putchar('0');
  else for (int i=a.d-1; i>=0; i--) putchar(a.v[i]+'0');
}
N a,b;
int main(void) {
  a=read();
  b=read();
  if (cmp(a,b)<0) {
    putchar('-');
    write(sub(b,a));
  } else write(sub(a,b));
  return 0;
}

#6测试点,答案是0,我的程序输出也是0,但始终WA。求教???

2023/12/23 23:48
加载中...