Jump to content

Problème d'algo


Benaddar

Recommended Posts

Bonjour, je planche sur un problème depuis quelques temps (j'aide quelq'un).

Le sujet: Ecrire l'algorithme qui trouve le chiffre des unités d'un nombre entier donné

Sachant que ce quelqu'un n'a pas vu l'incrémentation ni la décrémentation. Seulement les instructions de base.

Merci de donner quelques indices.

Link to comment
Share on other sites

Un petit peu long ton truc : si tu prends 3 milliards, tu vas attendre longtemps avant d'avoir l'unité.

Si tu manipules que des entiers, tu peux tenter ceci :

x = nombre / 10;

solution = nombre - x * 10;

C'est l'équivalent du modulo, mais il suppose que '/' soit une division entière.

Link to comment
Share on other sites

=> solution = nombre - (nombre/10)*10 = 0

:reflechis:

Comment tu es pointillieux ! :p

Il sous entendait bien sûr la division euclidiènne :-D

solution = nombre - 10*E(nombre/10)

(avec E(x) partie entière (tronquée) de x)

Au moins de cette façon, on a un aglo qui fonctionne en temps constant o(1), ce qui évite d'avoir à réfléchir aux limites justement (les grands nombres pour le coup) :-D

Link to comment
Share on other sites

Ouais, bon, admettons... :reflechis:

Mais bon, le but semblait ici d'appredre les bases de l'algorithmie, c'est-à-dire surtout l'art d'enchaîner boucles et tests.

Si on veut rire y'a aussi : nombre - (floor(nombre/10) * 10)

Chuis sûr qu'on peut faire un concours sur les algos les plus tordus même :p

Link to comment
Share on other sites

x = nombre / 10;

solution = nombre - x * 10;

+1 ya pas mieux

Sinon pour manipuler le tant que

------------------------------------------

var = 0

Tant que

(nombre - var) mod 10 différent de 0

alors

var = var + 1

Solution = var

Ce qui donne en récursif:

------------------------------------------

fonction CherchUnit (nombre n, var v)

début

Si (n - v) mod 10 différent de 0 alors CherchUnit(n, var +1)

Sinon Solution = v

fin

Premier appel => CherchUnit(LeNombre, 0)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...