Atestat Probleme c++Rezolvate

50
1. Problema sumei a doua numere mari. Se citesc din fişierul “numere.in”, de linii consecutive, 2 numere mari scrise în baza 10, fiecare avân Să se scrie un program care să calculeze suma lor, folosind şiru memorează cifrele numerelor. Rezultatul se va afişa în fişierul Exemplu: numere.in 1000000000099999 200001 numere.out 1000000000300000 Rezolvare: # include < fstream.h > # include < iostream.h > int a [ 51 ] , b [ 51 ] , c [ 51 ], n , m , p; void citire() { ifstream fin("numere.in"); char s [ 51 ]; fin >> s; n = strlen( s ); for(int i = n-1; i >= 0; i--) a [ n-i-1 ] = s [ i ] – '0'; fin >> s; m = strlen( s ); for(int i = m-1; i >= 0; i--) b [ n-i-1 ] = s [ i ] – '0'; if( n > m) p = n; else p = m; } void solve() { int t = 0; for(int i = 0; i < p ; ++ i) { c [ i ] = (a [ i ] + b [ i ] + t) % 10; t = (a [ i ] + b [ i ] + t)/10; } if( t ) c [ p ++ ] = t; } void afisare() { ofstream fout("numere.out");

Transcript of Atestat Probleme c++Rezolvate

1. Problema sumei a doua numere mari. Se citesc din fiierul numere.in, de pe 2 linii consecutive, 2 numere mari scrise n baza 10, fiecare avnd cel mult 50 de cifre. S se scrie un program care s calculeze suma lor, folosind iruri n care se memoreaz cifrele numerelor. Rezultatul se va afia n fiierul numere.out. Exemplu:

numere.in numere.out 1000000000099999 1000000000300000 200001 Rezolvare: # include < fstream.h > # include < iostream.h > int a [ 51 ] , b [ 51 ] , c [ 51 ], n , m , p; void citire() { ifstream fin("numere.in"); char s [ 51 ]; fin >> s; n = strlen( s ); for(int i = n-1; i >= 0; i--) a [ n-i-1 ] = s [ i ] '0'; fin >> s; m = strlen( s ); for(int i = m-1; i >= 0; i--) b [ n-i-1 ] = s [ i ] '0'; if( n > m) p = n; else p = m; } void solve() { int t = 0; for(int i = 0; i < p ; ++ i) { c [ i ] = (a [ i ] + b [ i ] + t) % 10; t = (a [ i ] + b [ i ] + t)/10; } if( t ) c [ p ++ ] = t; } void afisare() { ofstream fout("numere.out");

for ( int i = p-1; i >= 0; -- i ) fout double a [ 51 ] , b [ 51 ] , c [ 51 ]; int n , m , p; void citire() { ifstream fin("pol.in"); fin >> n >> m; for(int i = 0; i > a [ i ]; for(int j = 0; j > b [ j ]; if( n > m) p = n; else p = m;

} void solve() { int t = 0; for(int i = 0; i m; for(int i = 0; i > a [ i ]; for(int j = 0; j > b [ j ]; p = m + n; } void solve() { int t = 0; for(int i = 0; i a [ i ]; for(int j = 1; j > b [ j ]; } void solve() { int i = 1 , j = 1; while( i a [ i ]; for(int j = 1; j > b [ j ]; } void solve() { for(int i = 1; i m; for(int i = 1; i > a [ i ]; for(int j = 1; j > b [ j ]; } int caut(long x) { for( int i = 1; i m; for(int i = 1; i > a [ i ]; for(int j = 1; j > b [ j ]; } int caut(long x) { for( int i = 1; i urm = aux; aux = aux; } void citire() { long x; while(fin>>x) adaugare_la_sfarsit(x); fin.close(); } int verific() {

for( nod *p = p->urm; p ; p = p->urm) for( nod *q = p->urm ; q; q = q->urm) if( p->inf == q->inf) return 0; return 1; } void main() { citire(); if(verif()) cout ifstream fin ("sort.in"); ofstream fout ("sort.out"); struct nod { long inf; nod * urm; }; nod *prim=NULL, *ultim=NULL; void adaugare_la_sfarsit(long x) { nod *aux;

aux = new nod; aux->inf = x; aux->urm = NULL; if( prim == NULLL ) prim = aux; else ultim->urm = aux; aux = aux; } void citire() { long x; while(fin>>x) adaugare_la_sfarsit(x); fin.close(); } void sortez() { int ok; do{ok=1 for(nod *q = prim; q->urm ;q = q->urm) if( q->inf > q->urm->inf) { long aux = q->inf; q->inf = q->urm->inf; q->urm->inf = aux; ok=0; } }while (!ok); } void afisare() { for( nod *p = prim; p ; p = p->urm) fout inf > n; for(int i = 1; i > a [ i ]; fin.close(); } void sortare() { int p; for(int i = 1 ; i aux; j--)

a[ j++ ] = a[ j ]; a[ j+1 ] = aux; } } void afisare() { ofstream fout("sort.out"); for ( int i = 1; i n;

for(int i = 1; i > a [ i ]; fin.close(); } void sortare() { int i,j; for(i = 1;i ifstream fin("exista.in"); long a [ 51 ]; int n; void citire() { fin >> n; for(int i = 1; i > a [ i ]; fin.close(); } int nrdiv(long x) { long d; int nr = 0 ; for( d = 1; d urm = NULL; if( prim == NULLL ) prim = aux; else ultim->urm = aux; aux = aux; } void construiesc() { int n; fin >> n; long x; for(int i = 1 ; i > x; int ok = 0; for( nod *q = prim; q ; q = q->urm) if(q->inf == x) { q->frecv++ ; ok = 1; break; } if(!ok) adaugare_la_sfarsit(x); } } void afisare() { for( nod *p = prim; p ; p = p->urm) fout inf n; for(int i = 1; i > a [ i ]; fin.close(); } int progarit() { for(int i = 2; i 0) { s += x%10; x /= 10; } return s; } int verif() { for(int i = 2; i >m; for(int i = 1; i a[i][j]; fin.close(); } void main() { citire(n1, m1, a, "mat1.txt"); citire(n2, m2, b, "mat2.txt"); if(m1 == n2 ) { for(int i = 1; i c; for(int i = 1; i a[i][j]; fin.close(); } void sterge_l() { for(int i = l + 1; i > f2.numarator >> f2.numitor; s.numarator = f1.numarator*f2.numitor + f2.numarator*f1.numitor; s.numitor = f1.numitor*f2.numitor; long x = cmmdc(s.numarator,s.numitor); s.numarator /= x; s.numitor /= x; cout inf = x; aux->urm = NULL; aux->prec = ultim; if( prim == NULL) prim = aux; else ultim->urm = aux; ultim = aux;

} void citire() { long x; ifstream fin("lista.in); while(fin >> x) if(x != 0) adaugare_la_sfarsit(x); fin.close(); } void sterge() { nod *c = prim; while(c) if( c->inf % 2 == 0) if( c == prim) { prim = prim->urm; prim->prec = NULL; delete(c); c = prim; } else { c->prec->urm = c->prec; c->urm->prec = c->prec; nod *aux = c; c= c->urm; delte(aux); } else c = c->urm; } void afisare() { for(nod *p = prim; p; p = p->urm) fout inf # include < fstream.h > int n,x[11],sel[11]; ifstream fout("permut.out"); void afisare() { for(int i = 1;i int n,p,x[11]; ifstream fout("comb.out"); void afisare() { for(int i = 1;i # include < fstream.h > # include < math.h > int n,x[11]; ifstream fout("dame.out"); void afisare() { for(int i = 1;i > n; for(int i = 1; i > a[i]; fin.close(); } void afisare(int k) { fout