Aidez-moi : que calcule cette procédure

Bonjour,
svp trés urgent je veut connaitre que calcule cette procedure en MAPLE (son role)

mystere:=proc(x,y)
local c,xtmp,q;
c:=NULL ;
xtmp:=x;
while xtmp >=y do
q:=trunc(xtmp/y);
c:=xtmp-q*y,c;
xtmp:=q
od;
RETURN([xtmp,c])
end;

voici des examples

mystere(21,4);
[1, 1, 1]

mystere(33,4);

[2, 0, 1]

mystere(38,5);

[1, 2, 3]
Configuration: Windows XP
Opera 9.80

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Il s'agit de l'écriture de x dans la base y
    258 s'écrit 258 en base 10 (2*100 + 5*10 + 8)
    5 s'écrit 101 en base 2 (1*4 + 0*2 + 1*1)
    et pour reprendre un de tes exemples
    33 s'écrit 201 en base 4 (2*16 + 0*4 + 1)
    1. merci c gentil de ta part
  2. Bonjour

    essaye :
    mystere (23,10)
    mystere (258,10)
    mystere (1234,10)
    puis
    mystere(1,2)
    mystere(2,2)
    mystere(3,2)
    mystere(4,2)
    mystere(5,2)
    mystere(6,2)
    mystere(7,2)

    Avec ces exemples, ça devrait te paraître évident
    1. les derniers sont clairs mais les premiers sont encore flou

      mystere(1,2);
      [1]

      > mystere(2,2);

      [1, 0]

      > mystere(3,2);

      [1, 1]

      > mystere(4,2);

      [1, 0, 0]

      > mystere(5,2);

      [1, 0, 1]

      > mystere(6,2);

      [1, 1, 0]

      > mystere(7,2);

      [1, 1, 1]

      > mystere(23,10);

      [2, 3]

      > mystere(258,10);

      [2, 5, 8]

      > mystere(1234,10);

      [1, 2, 3, 4]