Aller au contenu
  • 0
Cybero

[Un peu ardu] Décimal = hexa inversé

Énigmes

C'est pas simple à expliquer alors je vais prendre un exemple :)

 

Prenons un nombre de départ = 371

En hexadécimal, il s'écrit 173, soit exactement le nombre de départ mais en inversant les chiffres

 

En supposant x > 10

 

Quelle est la somme (en décimal) du plus petit x et du plus grand x respectant cet exemple ?

 

Comme d'habitude, les premières réponses par Spoiler spoiler.png

Modifié par Cybero

Partager ce message


Lien à poster
Partager sur d’autres sites

20 réponses à cette énigme

Messages recommandés

  • 0

 

Prenons un nombre de départ = 173

En hexadécimal, il s'écrit 371

euh... non

 

173_dec = AD_hex

Modifié par godzi

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

99481+53 = 99534


 
#include <stdio.h>
#include <string.h>
void inverser_chaine(char chaine[])
{
    int lg, i=0, encore;
    char temp;
    lg = strlen(chaine);
    encore = lg/2;
    while(i<encore)
    {
        temp = chaine[lg-1-i];
        chaine[lg-1-i] = chaine[i];
        chaine[i] = temp;
        i++;
    }
    return;
}

int main(void)
{
int intval;
char hexval[7];
char decval[7];
for(intval = 0; intval<10000000; intval++)
{
    sprintf(decval, "%d", intval);
    sprintf(hexval,"%x",intval);
    inverser_chaine(hexval);
    if (strcmp(decval, hexval) == 0)
    {
        inverser_chaine(hexval);
        printf("%s %s\n", decval, hexval);
    }
}
    return 0;
}

 

Modifié par godzi

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Je trouve 1415 et 35 avec excel, mais je pense qu'on peut encore trouver plus haut ...

Faut que je fasse une macro du coup  :p

Modifié par petiseb

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bon je me suis mis au VBA :red:

 

Je trouve 99481 et 53 pour un total de 99534.

 

code bourrin :) :

 

 

For i = 10 To 50000000 Step 1

L = Hex(i)
M = StrReverse(L)
 
If i = StrReverse(L) Then
 
ActiveCell = ActiveCell + i
ActiveCell.Offset(0, 1).Select
ActiveCell = ActiveCell + M
ActiveCell.Offset(1, -1).Select
 
End If
 
Next i
 
post-402-0-50313700-1406022104.jpg
 
 
Ce que j'ai pas compris, c'est que si je met i=M en condition, je n'ai pas de résultat ...
Quelqu'un sait pourquoi ? 
Modifié par petiseb

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Ultimatum respecté et bonne réponse :top:

 

Par contre je vais te donner des cours de VBA, les .Select c'est moche :red:

Mais c'est marrant que vous soyez allé aussi loin dans vos boucles, ce n'était pas nécessaire

 

Résolue !

 

Merci de penser à mettre une note à ce sujet :fleur:

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

En tout cas très bonne énigme, mais pour des gens qui ne codent pas, c'est très chaud à trouver tout de même.

 

Les cours de VBA, j'en ai jamais eu et j'en ai pas lu non plus à vrai dire x')

J'ai juste chercher les fonctions qui me paraissaient intéressantes :p

Pour les boucles, il aurait fallu faire un calcul pour voir une limite. Quand tu commences à coder, tu oublies la partie calcul x)

 

Jolie le labview godzi :p

Modifié par petiseb

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.

×
×
  • Créer...

Information importante

En utilisant ce site, vous acceptez notre Politique de confidentialité et nos Conditions d’utilisation
Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.