Probleme de informatică
Clasa a IX-a
Elementele de bază C++ (46)
Subprograme predefinite (1)
Fişiere text (2)
Algoritmi elementari (111)
Tablouri unidimensionale (83)
Tablouri bidimensionale (64)
Probleme diverse (13)
Clasa a X-a
Subprograme (funcții) (87)
Şiruri de caractere (50)
Tipul înregistrare (26)
Recursivitate (57)
Alocarea dinamică a memoriei (2)
Liste înlănţuite (25)
Algoritmul lui Lee (1)
Clasa a XI-a
Metoda "Divide et impera" (12)
Metoda Backtracking (86)
Metoda Greedy (6)
Programare dinamică (18)
Grafuri neorientate (40)
Grafuri orientate (38)
Arbori (33)
Clasa a XII-a
Elemente de bază C# (32)
POO în C# (14)
Programare vizuală în C# (19)
Examen de bacalaureat
Competențe digitale
Examen de atestat
Admitere UBB (18)
Se citesc 3 numere naturale S, n si e cu urmatoarele semnificatii: S este o suma de bani care trebuie platita folosind bancnote care au valori puterile lui e de la 1 la e la n. Se se afiseze modalitatea de plata folosind un numar minim de bancnote de tipurile precizate. Sa se afiseze la final numarul de bancnote folosite. Datele se vor citi din fisierul eur.in, iar rezultatele se vor afisa in fisierul eur.out.
Exemplu:
eur.in
444 5 2
eur.out
13 bancnote de valoarea 32
1 bancnote de valoarea 16
1 bancnote de valoarea 8
1 bancnote de valoarea 4
16
Explicatie: n=5, e=2 rezulta ca bancotele au valorile 1, 2, 4, 8, 16 si 32.

#include <fstream>
using namespace std;
ifstream fin("eur.in");
ofstream fout("eur.out");

int main()
{
    int S,n,e,t=0;
    fin>>S>>n>>e;
    int p=1,k=0;
    while(p*e<=S && k<n )//calculez bancota maxima (<=S avand cel mult valoarea e la n)
      {
          p=p*e;
          k++;
      }
    while(S>0)
    {
        if(S>=p) fout<<S/p<<" bancnote de valoarea "<<p<<endl; //bancnotele de valoare p
        t=t+S/p;//numar bancnotele folosite
        S=S%p;//cat mai ramane de platit
        p=p/e;//bancnota urmatoare ca valoare (mai mica)
    }
    fout<<t;
    fin.close();
    fout.close();
    return 0;
}

24 apr 2024
Site-ul conține 884 de probleme rezolvate
Copyright © 2009-2018 Muresan Vasile Ciprian