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

Se consideră algoritmul alăturat, descris în
pseudocod.
S-a notat cu x%y restul împărţirii numărului natural x la
numărul natural nenul y şi cu [z] partea întreagă a
numărului real z.
a) Scrieţi numărul ce se va afişa dacă pentru a se
citeşte valoarea 404, iar pentru b se citeşte valoarea
413.
b) Dacă pentru variabila a se citeşte valoarea 58
scrieţi toate valorile care, citite pentru variabila b,
determină afişarea numărului 3.
c) Scrieţi programul C/C++ corespunzător algoritmului
dat.
d) Scrieţi în pseudocod un algoritm echivalent cu
algoritmul dat în care să se înlocuiască structura
repetitivă pentru...execută cu o structură
repetitivă de un alt tip.
citeşte a,b
(numere naturale, a≤b)
k=0
┌pentru i=a,b execută
│ n=i; c=0
│ ┌cât timp n>0 execută
│ │ ┌dacă n%2=1 atunci
│ │ │ c=c+1
│ │ └■
│ │ n=[n/10]
│ └■
│ ┌dacă c>0 atunci
│ │ k=k+1
│ └■
└■
scrie k

Răspunsuri la întrebare

Răspuns de blindseeker90
17
Programul gaseste numarul de numere din respectivul interval care au cel putin o cifra impara.
a) pentru 404 413 avem 7 numere cu o cifra impara: 405 407 409 410 411 412 413, deci rezultatul e 7
b) 3 numere care au cel putin o cifra impara de la 58 in sus sunt: 58,59,61
daca  am avea si 63 ar fi 4 numere. Deci pentru a ramane 3 b=61 sau b=62
c)
#include <iostream>
using namespace std;

int main(){

int a,b,i,n,k,c;
cin>>a>>b;
k=0;
for(i=a;i<=b;i++){
n=i;
c=0;

while(n>0){
if(n%2==1){
c=c+1;
}
n=n/10;
}
if(c>0){
k=k+1;
}
}
cout<<k;
}
d)
i=a;
cat timp i<=b executa
(adaugi tot codul din programul pentru executa)
(la final adaugi)
i=i+1
sfarsit executare.

Alte întrebări interesante