Citat:
Ursprungligen postat av
FyriFisen
Jag gjorde lite ändringar, har fortfarande de problemet att jag bara kan räkna 63 st eftersom det blir för långt för "long long int" att skriva ut vet du om det finns någon annan int som kanske kan skriva ut över 20 siffror? ursäkta om det är lite otydligt om du vill kan du gärna testa koden så kommer du märka vad jag menar

Nej, alla inbyggda typer har en fix storlek och därmed en övre gräns för hur mycket de kan lagra. Du måste isf använda fler variabler (array/vector) per tal, alltså dela upp dem, och då måste du skriva egna funktioner/metoder för de operationer du vill göra på denna "datatyp" - vänsterskift (multiplikation med 2) och utskrift i decimalform.
Du får in (minst) 19 decimala siffror i en long long. Du låter en lagra de lägsta (längst till höger), nästa lagra de 19 till vänster till det, osv tills talet tar slut. Multiplikation fungerar exakt som den vanliga
uppställningen från skolan, bara att du har basen 19e10 istället för 10. Istället för att räkna med siffror mellan 0 och 9, räknar du med long-longs. Du multiplicerar den lägre long-longen med alla long-longar från det andra talet, osv. Sen adderar du altihop, så du behöver en additionsfunktion också.
Alternativt använder du ett bibliotek där någon redan har gjort jobbet åt dig. Jag vet inte om det finns i C++11's standardbibliotek, eller om man måste ladda hem något separat.