1000000/gcd(1000000,227273)
. Également connu sous le numéro lcm(1000000,227273)/227273
. Dans ce cas, 1 million.
Ce que vous voulez faire, c'est tourner 0,227273 en une fraction dans la forme la plus simple. Le nombre que vous cherchez est alors le dénominateur de cette fraction. Depuis 227273/1000000 est déjà dans la forme la plus simple, vous avez terminé. Mais si votre entrée était 100.075, alors 75/1000 n'est pas dans la forme la plus simple. La forme la plus simple est 3/40, donc la solution pour X est 40.
En optimisation, vous pouvez simplifier le calcul car vous savez que le dénominateur de départ est une puissance de 10, donc ses seuls facteurs premiers sont 2 et 5. Donc tout ce que vous devez rechercher dans le numérateur est la divisibilité par 2 et 5, ce qui est plus facile que l'algorithme d'Euclide. Bien sûr, si vous avez déjà une implémentation de gcd et/ou lcm, alors c'est plus d'efforts de votre part, pas moins.
Gardez à l'esprit lorsque vous obtenez le résultat, que les nombres à virgule flottante ne peuvent généralement pas représenter les fractions décimales avec précision. Donc, une fois que vous avez la réponse mathématiquement correcte, il ne vous donnera pas nécessairement une réponse entière lorsque vous faites une multiplication à virgule flottante. Le revers de la médaille est que, bien sûr, la question ne s'applique que s'il y a une expression décimale finie du nombre qui vous intéresse.
Si vous avez d'abord le nombre comme quotient, alors vous devez trouver directement le dénominateur de sa forme la plus simple, non en la convertissant en décimal et en la tronquant. Par exemple, pour résoudre ce problème pour le nombre "6 et un tiers", la réponse est 3, pas une puissance de 10. Si l'entrée est "la racine carrée de 2", il n'y a pas de solution pour X.
Eh bien, en fait, le plus petit entier X avec la propriété dont vous avez besoin est 0
, mais je suppose que vous ne voulez pas dire que ;-)
Voulez-vous dire vraiment décimal ou virgule flottante? –
La représentation n'a pas d'importance, du moins pas pour moi. – Davorin