12. Se consideră următorul algoritm:
intreg n, i, nr, x, S;
citeste n; S<- 0;
pentru i <-1( i primeste 1), n executa
nr <- 1(nr primeste 1); citeste x;
cat timp x <- 9(x primeste 0) executa
nr<- nr * 10;
x <- [x / 10];
s<-s + x*nr;
scrie s
a) Ce valoare va fi afişată pentru n=
5 şi numerele: 222, 2043, 29, 2,
20035.
b) Determinați un set de date de
intrare pentru care valoarea afişată
va fi egală cu suma numerelor citite?
c) Realizați programul Pascal/C/C++
corespunzător algoritmului prezentat.
d) Rescrieți instrucțiunile repetitive
ale algoritmului folosind numai
instructiunea condiționată posterior.
Anexe:
Răspunsuri la întrebare
Răspuns de
1
Răspuns:
a) 22222
b) 5 si numerele 1,2,3,4,5
c)
int main(){
int n,i,nr,x,s;
cin>>n; s=0;
for(i=1;i<=n;i++){
nr=1; cin>>x;
while(x>9){
nr=nr*10;
x=x/10;
}
s=s+x*nr;
}
cout<<s;
}
d)
int main(){
int n,i,nr,x,s;
cin>>n; s=0;
i=1;
do{
nr=1; cin>>x;
if(x>9)
do{
nr=nr*10;
x=x/10;
}while(x>9);
i++;
s=s+x*nr;
}while(i<=n);
cout<<s;
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Ed. tehnologică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă