Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 000 A+B : August 15, 2007, 03:00:27
Eh? Okay! Si de ce ai postat?  Raised eyebrow
Pentru ca nu am fost atent Sad( ma asteptam la ceva mai greu si nu mi-am dat seama ca e un simplu cout<<a+b; M-am gandit ca sa nu fie in zadar munca mea sa public rezolvarea pentru numere mari. si...se obtin cele 100 de puncte.
Da, Sigrid, ai dreptate, nu mai era necesar iostream Wink .
2  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 000 A+B : August 11, 2007, 18:18:19
am incercat sa rezolv in cazul unor numere date mai mari
Cod:
#include <iostream.h>
#include <fstream.h>
#include <string.h>
fstream f("adunare.in",ios::in);
fstream g("adunare.out", ios::out);
void adunare(char nr1[10], char nr2[10], int i, int j) {
     int t=0; // 0 unitati de adaugat
     for (j;j>=0;j--,i--) {
         nr1[i]=nr1[i]+nr2[j]-48+t;t=0;
         if (nr1[i]>57) {  //dk suma cifrelor > 10
            t=1;
            nr1[i]-=10;
         }
     }
     if (i==-1&&t==1) //dk a ramas restul neadaugat se tipareste
g<<1;
     else
nr1[i]+=t;
g<<nr1; //tiparirea sumei
}
int main() {
       int i,j;char nr1[10],nr2[10];
       f.get(nr1,10);f.get();f.get(nr2,10);
       i=strlen(nr1)-1;
       j=strlen(nr2)-1;
       if (i>j) //care e nr mai lung
          adunare (nr1,nr2,i,j);
       else
            adunare (nr2,nr1,j,i);             
       f.close();g.close();
       return 0;
}

       
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines