CALCUL DU CARRE PAR LA MÉTHODE DE L'ABAQUE (ITÉRATIF ET RECURSIF)

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 23 nov. 2008 à 16:38
aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 - 31 août 2009 à 10:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/48516-calcul-du-carre-par-la-methode-de-l-abaque-iteratif-et-recursif

aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
31 août 2009 à 10:52
J'ai oublier la note :p
Cette méthode fonctionne même si n = 0
aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
31 août 2009 à 10:50
J'aime bien :p
Je connaissais cette méthode facile a démonter :

Soit _ l'opérateur qui a tout nombre entier positif a et b accole a à b
Par exemple 13_9 = 139
Plus Mathématiquement si on pose len(a) la propriété qui renvoi le nombre de chiffre que compose le nombre a, on peut traduire l'opérateur ainsi :
a_b = a*10^len(b) + bPar exemple 2_12 2*10*len(12) + 12 2*10^2 + 12 = 2*100 + 12 = 212

On pose n un nombre entier positif, alors :(n_5)² (n*10 + 5)² (n*10)² + 2*n*10*5 + 5² = n²*100 + n*100 + 25 = (n²+n)*100 + 25 = (n(1+n))*100 + 25 = (n * (n+1))_25

CQFD

On retrouve bien ton exemple 45² = ?4*5 4*(4+1) 20
45² = 20_25

Voila c'est amusant comme code, et c'est bien codé donc 9
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
2 déc. 2008 à 11:36
hum... dsl
47 40 + 7 4 * 10 + 7

47^2 = [ (4*10) + 7 ] ^2
47^2 = (4*10)^2 + 2*7*4*10 + 7^2
47^2 = 4^2 * 100 + 2 * 7 * 4 * 10 + 7^2

une erreur d'inatention, j'avais probablement 42 en tete quand j'ai ecrit cette ligne...

quand on calcule de tete un carre a deux chiffres, c'est plus interessant de faire :47 50 - 3 2500 - 300 + 9 = 2209
Utilisateur anonyme
2 déc. 2008 à 11:20
salut
en info :
47 ^2 = 4^2*100 + 2*4*10*2 + 2^2

j'aimerais savoir comment ca se passe car je parvient pas a trouver
xeolin Messages postés 336 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 8 novembre 2011 2
27 nov. 2008 à 12:22
C'est bien de prendre l'habitude d'utiliser :

else :
au lieu de :
elif d<>5:

L.69

Ca permet d'eviter un calcul par l'ordi inutile.

Sinon c'est un tres bon algorythme même su tu devrais essayer de l'optimiser.

9/10

Xeolin
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
23 nov. 2008 à 23:58
ok merci mais ici, le but n'était pas de faire un truc rapide, je l'ai dit en commentaire sur cette source, cette méthode n'est pas adaptée à l'informatique, par contre c'est un bon exemple d'algorithme.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
23 nov. 2008 à 16:38
en info :

47 ^2 = 4^2*100 + 2*4*10*2 + 2^2

avec les decalages de bits, t'arrvives a faire un truc rapide
Rejoignez-nous