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 valoarea care se va afişa dacă se citeşte pentru n valoarea 296385, iar pentru k valoarea 3.
b) Dacă se citeşte pentru k valoarea 4, scrieţi
cea mai mare valoare de 5 cifre care poate fi citită pentru n astfel încât numărul afişat în urma executării algoritmului să fie 1.
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ă cât timp...execută, cu o structură repetitivă
pentru...execută.
citeşte n,k (numere naturale)
p <- 1
┌cât timp n>0 şi k>0 execută
│ c <- n%10
│ ┌dacă c%2=1 atunci
│ │ p <- p*c
│ └■
│ n <- [n/10]
│ k <- k-1
└■
scrie p
Ma intereseaza subpunctul d in special
Răspunsuri la întrebare
Răspuns de
7
algoritmul tau face produsul primelor k numere impare de la coada
a) 15
b) 98888 (ultimele 4 nr sunt pare, deci produsul va ramane 1)
c)
#include<iostream>
using namespace std;
int main() {
int n, k, p = 1, c;
cin >> n >> k;
while (n > 0 && k > 0) {
c = n % 10;
if (c % 2 == 1)
p *= c;
n /= 10;
k--;
}
cout << p;
return 0;
}
d)
citeşte n,k (numere naturale)
p <- 1
┌pentru i <- 1, k execută
│ c <- n%10
│ ┌dacă c%2=1 atunci
│ │ p <- p*c
│ └■
│ n <- [n/10]
│ k <- k-1
└■
scrie p
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă