wonderemily12 / java-emily-homework

Homework Skeleton Code Repository
0 stars 0 forks source link

Bugs in `BigInteger` #3

Open chongkong opened 6 years ago

chongkong commented 6 years ago
  1. sign() static method가 하는 일이 없어요
  2. flag라는 static state를 가지면 안될것 같아요. 아마도 local variable이나 instance member로 대체할 수 있어야 해요.
  3. 뺄셈이나 덧셈이 실제로는 음수/양수 여부에 따라서 반대되는 연산을 수행해야 할 필요가 있는데, 특히 뺄셈을 수행할 때 작은 수에서 큰 수를 빼는건 반대로 큰 수에서 작은 수를 빼고 부호를 반대로 해주면 되잖아요. 그래서 대소비교를 하는 메소드가 필요해요. 이러한 메소드를 compareTo(BigInteger other)라는 시그니처를 가지는 메소드가 필요해요.
chongkong commented 6 years ago

덧셈/뺄셈 로직

  1. 양수와 양수의 덧셈 -> 쉬움
  2. 양수와 음수의 덧셈 -> 양수의 절댓값이 크면 뺄셈, 음수의 절대값이 크면 음수의 절댓값에서 양수의 절댓값을 빼고 부호를 반대로.
  3. 음수와 음수의 덧셈 -> 쉬움
  4. 뺄셈 -> 부호 바꾼 덧셈