"unsigned long int" ne cesse de devenir 0. Il doit s'agir d'un très grand nombre entier que je peux exploiter multiplication et modulo on. Exemple: 1234^123% 1234Comment allouer un entier avec des centaines de chiffres en C++?
Répondre
Deux routes vous ont
1. Mettre en oeuvre ce que vous avez besoin en apprenant comment faire des calculs à l'aide de grands tableaux d'entiers avec des trucs mathématiques pour accélérer ou
2. Utilisez une bibliothèque
Je suggère d'aller avec la 2ème option si vous n'êtes pas lié à utiliser la bibliothèque externe. Une telle bibliothèque bigNum est ttmath
OU Si vous avez une option pour passer à Java, java a intégré BigInteger, BigDecimal et plus de fonctionnalités supportées. Regardez BigInteger javadoc
Cette réponse pourrait être améliorée avec quelques exemples. – mjs
Si vous utilisez gcc, vous pouvez essayer __uint128_t ou peut-être utiliser double au lieu sauf si vous devez effectuer des opérations au niveau du bit
Vous avez besoin d'une grande bibliothèque entière comme l'a dit Jonny Henly. Néanmoins, 1234^123% 1234 acutally est 0. – chrizke
^est une opération xor en C++, pas exponentiation, – doug
Et regarder la précédence: '1234^123% 1234' signifie ce' 1234^(123% 1234) ' – doug