Cod sursa(job #2089781)

Utilizator YusyBossFares Yusuf YusyBoss Data 17 decembrie 2017 10:10:46
Problema A+B Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <cstdio>
#include <algorithm>
int a[100], b[100], c[100];

using namespace std;

void Adunare(int a[], int n, int b[], int m, int &k) {
  int i, r = 0, x;
  if (n > m)
    k = n;
  else
    k = m;
  for (i = 1; i <= n || i <= m; i++) {
    x = a[i] + b[i] + r;
    if (x > 9) {
      r = 1;
      x -= 10;
    }
    else
      r = 0;
    c[i] = x;
  }
  if (r == 1)
    c[++k] = 1;
}

int main() {
  FILE *fin, *fout;
  fin = fopen ("adunare.in", "r");
  fout = fopen ("adunare.out", "w");
  char ch;
  int n = 0, m = 0, max1, i, k;
  ch = fgetc(fin);
  while (ch >= '0' && ch <= '9') {
    n++;
    a[n] = ch - '0';
    ch = fgetc(fin);
  }
  reverse (a + 1, a + n + 1);
  ch = fgetc(fin);
  while (ch >= '0' && ch <= '9') {
    m++;
    b[m] = ch - '0';
    ch = fgetc(fin);
  }
  reverse (b + 1, b + m + 1);
  Adunare(a, n, b, m, k);
  for (i = k; i >= 1; i--) {
    fprintf(fout, "%d", c[i]);
  }
  return 0;
}