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

Se consideră algoritmul de mai jos, descris în pseudocod.
S-a notat cu x%y restul împărţirii numărului natural x la numărul natural y, iar cu [z] partea întreagă a
numărului real z.
citeşte m (număr natural, m<10)
citeşte n (număr natural, n>1)
┌ pentru i←1,n execută
│ citeşte x
│ (număr natural)
│ aux←x
│ ok←0
│ ┌cât timp x>0 execută
│ │ ┌dacă x%10=m atunci
│ │ │ ok←1
│ │ └■
│ │ x←[x/10]
│ └■
│ ┌dacă ok=1 atunci
│ │ scrie aux
│ └■
└■
a) Scrieţi valorile care se vor afişa dacă numerele citite sunt m=5, n=5, apoi, în această ordine: 25, 40,
8, 15, 133.
b) Scrieţi care este cea mai mare valoare care poate fi citită pentru m dacă n=4, iar pentru x se citesc,
în ordine, valorile 121, 761, 961, 4481 astfel încât, la finalul executării algoritmului, să se afişeze
valoarea 761.
c) Scrieţi programul C/C++ corespunzător algoritmului dat.

Răspunsuri la întrebare

Răspuns de marcuandreii68p8oko7
3
a) 25,15
b) 7
c)
#include<iostream>
using namespace std;

 int main()
{
    int m,n,i,x,aux,OK;
    cin>>m>>n;
    for(i = 1; i <= n; ++i)
    {
        cin>>x;
        aux = x;
        OK = 0;
        while(x > 0)
        {
            if(x % 10 == m) OK = 1;
            x = x / 10;
        }
        if(OK == 1) cout<<aux<<"\n";
    }
    return 0;
}

Alte întrebări interesante