👤

a. Subprogramul gaseste_cifra are doi parametri:
 x, prin care primeşte un număr natural din intervalul [0,109];
 c, prin care primește o cifră.
Subprogramul returnează numărul de apariții ale cifrei c în scrierea numărului x. Scrieţi la
calculator definiţia completă a subprogramului.
Exemplu: pentru x=1323 și c=3, subprogramul returnează 2; pentru x=1323 și c=4,
subprogramul returnează 0.


b) Se citește de la tastatură un număr natural nr din intervalul [0,109]. Se cere scrierea și executarea
la calculator a unui program care să calculeze și să scrie, în fișierul control.out, valoarea
formată din numărul de apariții ale fiecărei cifre în scrierea numărului nr, folosind apeluri utile
ale subprogramului gaseste_cifra, iar pe linia următoare în fișier se va scrie cifra de control
a lui nr. Cifra de control este cifra obținută prin însumarea cifrelor numărului și repetarea
procedeului pentru suma obținută, până când se obține o singură cifră.
Exemplu: pentru nr=23242527, fișierul control.out va conține:
 pe primul rând, numărul 41110100 (pentru că cifrele 0 și 1 nu apar, 2 apare de 4 ori, 3
apare o dată, 4 apare o dată, 5 apare o dată, 6 nu apare, 7 apare o dată, 8 și 9 nu apar).
 pe al doilea rând, numărul 9 (2+2+2+2+3+4+5+7=27; 2+7=9)


Răspuns :

a)

int gaseste_cifra(int x,int c){

   int k=0;

   do

       k+=(x%10==c),

       x/=10;

   while(x);

   return k;

}

b)

#include<iostream>

#include<fstream>

using namespace std;

int main(){

   int n,x=0;

   cin>>n;

   ofstream fout("control.out");

   for(int i=0;i<=9;i++)

       x=x*10+gaseste_cifra(n,i);

   fout<<x<<endl;

   if(n%9==0)

       fout<<9;

   else

       fout<<n%9;

   return 0;

}

Vă mulțumim că ați ales să vizitați site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări sau aveți nevoie de asistență suplimentară, vă rugăm să ne contactați. Revenirea dumneavoastră ne va bucura, iar pentru acces rapid, nu uitați să ne salvați la favorite!


En Trainingsy: Alte intrebari