# 13586 - Patrick's Calculator
>author: Utin
###### tags: `math`
---
## Brief
See the code below
## Solution 0
```c=
#include<stdio.h>
int main() {
char a[140], b[140];
int c[35] = {0}, d[35] = {0}, digit_c = 0, digit_d = 0, ans[36];
scanf("%s", a);
scanf("%s", b);
//轉成int陣列
int temp_sum = 0;
for (int i = 0; i < sizeof(a); i++){
if (a[i] == ',') {
c[digit_c] = temp_sum;
digit_c += 1;
temp_sum = 0;
}
else if (a[i] == '\0') {
c[digit_c] = temp_sum;
digit_c += 1;
temp_sum = 0;
break;
}
else {
temp_sum *= 10;
temp_sum += a[i] - '0';
}
}
for (int i = 0; i < sizeof(b); i++){
if (b[i] == ',') {
d[digit_d] = temp_sum;
digit_d += 1;
temp_sum = 0;
}
else if (b[i] == '\0') {
d[digit_d] = temp_sum;
digit_d += 1;
temp_sum = 0;
break;
}
else {
temp_sum *= 10;
temp_sum += b[i] - '0';
}
}
//計算
int digit_minus, constant_digit_minus, digit_ans;
if (digit_c >= digit_d) {
digit_ans = digit_c;
digit_minus = digit_c - digit_d;
constant_digit_minus = digit_c - digit_d;
for (int i = 0; i < digit_c; i++) {
if (digit_minus > 0) {
ans[i] = c[i];
digit_minus -= 1;
}
else {
ans[i] = c[i] + d[i - constant_digit_minus];
}
}
}
else {
digit_ans = digit_d;
digit_minus = digit_d - digit_c;
constant_digit_minus = digit_d - digit_c;
for (int i = 0; i < digit_d; i++) {
if (digit_minus > 0) {
ans[i] = d[i];
digit_minus -= 1;
}
else {
ans[i] = c[i - constant_digit_minus] + d[i];
}
}
}
//進位
for (int i = digit_ans - 1; i > 0; i--) {
if (ans[i] >= 1000) {
ans[i - 1] += ans[i] / 1000;
ans[i] %= 1000;
}
}
//輸出
for (int i = 0; i < digit_ans; i++) {
if (ans[i] >= 1000 && i == 0) {
printf("%d,%03d", ans[i] / 1000, ans[i] % 1000);
}
else if (ans[i] < 1000 && i == 0) {
printf("%d", ans[i]);
}
else {
printf(",%03d", ans[i]);
}
}
printf("\n");
}
// By Utin
```
## Reference