2016-08-10 1 views
-1

Comment puis-je représenter (stocker) de grands nombres en C d'une longueur de 100 chiffres ou plus?Représentant de grands nombres dans C?

Ou bien.,

Est-il possible de stocker une série dans une variable (et pas un tableau que je dois faire un tableau de la série elle-même)

+1

S'il vous plaît faire renvoyer cette question en elle-même si http: // stackoverflow.com/questions/2252896/how-to-store-a-very-long-integer-value-in-ac-program-for-an-e xam-98474737475 – New

+0

Les méthodes présentées dans le lien rendent les opérations d'exécution assez lourdes ... mais je suppose que c'est correct ... mal comprendre. Cependant, lisez la question alternative .... – user102958

+0

Qu'est-ce que c'est? C ou Objective-C? Grande différence dans vos options. – rmaddy

Répondre

-1

Vous pouvez le faire en stockant les numéros comme des chaînes, voici un exemple pour sommer les chiffres qui sont represnet cette façon (son en C++ mais devrait être assez facile de le convertir en c):

string add (string &s1, string &s2){ 
    int carry=0,sum,i; 

    string min=s1, 
    max=s2, 
    result = ""; 

    if (s1.length()>s2.length()){ 
     max = s1; 
     min = s2; 
    } else { 
     max = s2; 
     min = s1; 
    } 

    for (i = min.length()-1; i>=0; i--){ 
     sum = min[i] + max[i + max.length() - min.length()] + carry - 2*'0'; 

     carry = sum/10; 
     sum %=10; 

     result = (char)(sum + '0') + result; 
    } 

    i = max.length() - min.length()-1; 

    while (i>=0){ 
     sum = max[i] + carry - '0'; 
     carry = sum/10; 
     sum%=10; 

     result = (char)(sum + '0') + result; 
     i--; 
    } 

    if (carry!=0){ 
     result = (char)(carry + '0') + result; 
    }  

    return result; 
}