Informatică, întrebare adresată de imyourqueen07, 9 ani în urmă

Se defineşte subprogramul sub cu doi parametri, subprogram care primeşte prin intermediul parametrului n un număr natural de cel mult opt cifre şi prin intermediul parametrului k o cifră. Subprogramul determină eliminarea primei apariţii a cifrei k în numărul n şi returnează numărul obţinut prin intermediul parametrului n. De exemplu, pentru valorile n=152422 şi k=2 ale parametrilor, în urma apelului subprogramului sub, parametrul n va returna valoarea 15422. Dacă cifra k nu apare în scrierea numărului n, atunci valoarea lui n nu se modifică.
a) Scrieţi definiţia completă a subprogramului sub.
b) Scrieţi în limbajul C sau C++ programul în care se citesc de la tastatură două numere naturale a şi b cu cel mult opt cifre. Programul va determina şi va afişa pe ecran numărul de cifre distincte ce intră atât în scrierea lui a cât şi în scrierea lui b, fără a accesa cifrele numerelor a şi b, folosind apeluri ale subprogramului sub.
De exemplu, pentru valorile a=1237248 şi b=1245823 programul va determina afişarea pe ecran a valorii 5 deoarece sunt cinci cifre distincte (1,2,3,4 şi 8) ce apar atât în scrierea lui a cât şi în scrierea lui b.

Răspunsuri la întrebare

Răspuns de Voli04
4
#include <iostream>
using namespace std;int sub(int n, int k){int n1 = 0;while(n){    n1 = n1 * 10 + n % 10;    n /= 10;}bool ok = true;while(n1){    if(ok){        if(n1 % 10 == k){            ok = false;            n1 /= 10;        }        else {
            n = n * 10 + n1 % 10;            n1 /= 10;        }    }    else {        n = n * 10 + n1 % 10;        n1 /= 10;    }}return n;}int main(){    int a, b, ct = 0;    cin >> a >> b;    for(int i = 1; i <= 9; i++)    {        if(sub(a, i) != a && sub(b, i) != b) ct++;    }    cout << ct;}daca subprogramul modifica a - ul si b - ul in acelasi timp, inseamna ca au o cifra comuna.
Alte întrebări interesante