👤

Se consideră programul pseudocod alăturat.S-a notat cu x%y restul împãrţirii numerelor întregi x şi y şi cu [z] partea întreagă a numărului real z.


citeşte x ,m

{x întreg, m natural}

y=1

┌ cât timp m>0 exec

│┌ dacă m%2 =0

││ atunci

││ m=[m/2]; x=x*x

││ altfel

││ m=m-1;y=y*x

│└■

└■

scrie y

Ce va afisa pt x= -2 si m=9?


Răspuns :

Răspuns:

-512

Explicație:

#include <iostream>

using namespace std;

int main(){

   int x,m;

   cin>>x>>m;

   int y=1;

   while(m>0) {

       if(m%2==0) {

           m=m/2;x=x*x;

       } else {

           m=m-1;y=y*x;

       }

   }

   cout<<y;

   return 0;

}