質問するログイン新規登録

回答編集履歴

1

バグ修正

2020/11/29 17:57

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -14,9 +14,11 @@
14
14
  carry = listnew[i+j] / 10;
15
15
  listnew[i+j] %= 10;
16
16
  }
17
+ listnew[i+digit2] += carry;
18
+ carry = 0;
17
19
  }
18
20
  int k = digit1 + digit2 - 1;
19
- if (carry) listnew[k++] = carry;
21
+ if (listnew[k]) k++;
20
22
  return k;
21
23
  }
22
24
 
@@ -24,9 +26,9 @@
24
26
  {
25
27
  int n1 = 123, n2 = 123;
26
28
  int list1[10] = { 3, 2, 1 }, list2[10] = { 3, 2, 1 };
27
- int listnew[10] = { 0 };
29
+ int listnew[22] = { 0 };
28
30
  int k = multiply(n1, n2, list1, list2, listnew);
29
- for (int i = k; --i >= 0; ) printf("%d", listnew[i]);
31
+ for (int i = k; --i >= 0; ) putchar(listnew[i] + '0');
30
32
  putchar('\n');
31
33
  }
32
34
  ```