Informatică, întrebare adresată de Utilizator anonim, 8 ani în urmă


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 robertgaube
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