Je veux essayer d'écrire ma propre classe BigInt donc je me demande quel serait le moyen le plus efficace de trouver le dernier chiffre d'un nombre en C, en particulier pour une entrée qui serait un très grand int.Quel est le moyen le plus efficace pour trouver le dernier chiffre d'un int en C++?
Répondre
lastDigit = number % 10;
Bien sûr, ceci est défini par l'implémentation avec des nombres négatifs: – rlbond
@rlbond, je pense que cela sera corrigé pour être négatif nombres négatifs en C++ 0x. @marndt, vous avez mal lu la question: 'number' voici un bigint et l'opérateur'% 'est à définir – avakar
-1 car il ne répond pas vraiment à sa question, il veut connaître la meilleure façon de l'implémenter pour une classe personnalisée qu'il écrit, sinon vous êtes sur place Si vous implémentez une classe Int256 (par opposition à Int16, Int32, Int64) comment implémentez-vous% pour cette classe? N'utilisez pas l'héritage car il est uniquement défini pour les types prédéfinis .NET. – jcolebrand
Puisque vous avez affaire à l'entrée, la meilleure chose à faire serait de le lire comme une chaîne, et convertir le dernier caractère à une valeur de chiffres en soustrayant « 0 ».
Je suppose que votre BigInt utilise une implémentation en base 256, mais cela fonctionnerait aussi bien pour les bases 65536 ou plus grandes. Commencez par un exemple simple: BigInt (2828) sera stocké comme 11 * 256 + 12. Maintenant BigInt (2828)% 10 = (11 * 256 + 12)% 10 = ((11% 10) * (256% 10) + 12% 10))% 10 = (256% 10 + 2)% 10 = (6 + 2)% 10 = 8.
Les deux règles de base que vous allez appliquer sont (une + b)% 10 = (a% 10 + b% 10)% 10, et (a * b)% 10 = (a% 10 * b% 10)% 10. En l'occurrence, non seulement 256% 10 = = 6, mais (256^N)% 10 = (6^N)% 10 = 6. Cela simplifie énormément votre fonction LastDigit(). Donc, en supposant encore un BigInt B représenté comme une séquence d_N..d_0 avec base 256. Alors B% 10 est (6 * somme (d_i% 10) - 5 * (d_0% 10))% 10. Chaque terme dans la somme est au plus 9, évidemment. Par conséquent, vous pouvez sommairement sommer (ULONG_MAX/6) base 256 chiffres sans débordement, et la même chose s'applique à base-65536 et base-4294967296
- 1. Quel est le moyen le plus efficace pour changer le dernier élément d'une chaîne délimitée '/'?
- 2. quel est le moyen le plus efficace d'écraser bitmapdata
- 3. Comment supprimer le dernier chiffre d'un int (C#)?
- 4. Quel est le moyen le plus efficace d'écrire une requête pour obtenir le dernier élément de la collection?
- 5. Le moyen le plus efficace pour trouver le plus grand des trois nombres
- 6. Quel est le sélecteur le plus correct/le plus efficace?
- 7. Analyse en Python: quel est le moyen le plus efficace pour supprimer/normaliser les chaînes?
- 8. Quel est le moyen le plus efficace pour charger un dictionnaire en Python?
- 9. Quel est le moyen le plus efficace pour gratter les données d'un site Web (en PHP)?
- 10. Quel est le moyen le plus efficace d'obtenir le premier élément d'un tableau associatif en JavaScript?
- 11. Quel est le moyen le plus efficace pour obtenir le code source de la page Web en C?
- 12. MongoDB: Quel est le moyen le plus efficace pour stocker un chromosome/position
- 13. Quel est le moyen le plus rapide pour trouver le nombre de correspondances entre les tableaux?
- 14. Quel est le moyen le plus efficace de copier un tableau d'entiers dans l'objectif C?
- 15. Quel est le moyen le plus efficace pour dessiner un grand CGPath?
- 16. Quel est le moyen le plus efficace pour restaurer plusieurs bases de données dans SQL 2008
- 17. Quel code jQuery est le plus efficace?
- 18. Quel est le moyen le plus efficace de faire des requêtes XPath récursives en utilisant libxml2?
- 19. Le moyen le plus efficace pour obtenir des listes?
- 20. Quel est le moyen le plus efficace pour charger mon fichier JPG stocké dans l'ImageView?
- 21. Quel est le moyen le plus efficace pour créer un système d'ampoule de forum (non lu)?
- 22. Quel est le moyen le plus efficace pour stocker et analyser des données dans AS3?
- 23. Quel est le moyen le plus efficace pour Deserialze un fichier XML
- 24. Quel est le moyen le plus efficace pour charger DirectoryEntry d'un utilisateur?
- 25. NSMutableArray. Quel est le moyen le plus rapide pour le convertir en un tableau C simple?
- 26. Quel est le moyen le plus efficace de stocker cette paire ordonnée en php?
- 27. Le moyen le plus efficace pour tester les liens
- 28. Quel est le moyen le plus efficace de tronquer un nombre pour une précision spécifique?
- 29. Quel est le moyen le plus efficace pour créer ListBuffer vide?
- 30. Quel est le moyen le plus rapide d'apprendre l'objectif-c pour un développeur expérimenté en PHP?
Est-ce que 'value & 0xF' fonctionnera? –
Je suppose qu'il voulait dire base 10, Matt;) – schnaader
Dépend de la base de la représentation que vous utilisez. – fredoverflow