2016-08-10 4 views
-1

Как я могу представлять (хранить) большие числа в C длиной до 100 цифр или более?Представление больших чисел в C?

Или же.,

Есть ли способ, чтобы сохранить серию в переменном (а не массив, так как я должен сделать массив самой серии)

+1

Пожалуйста, передать этот вопрос в SO сам HTTP: // stackoverflow.com/questions/2252896/how-to-store-a-very-long-integer-value-in-ac-program-for-an-e xam-98474737475 – New

+0

Методы, представленные в ссылке, делают выполнение операций довольно громоздким ... но я думаю, что все в порядке ... плохо понять это. Однако прочитайте альтернативный вопрос .... – user102958

+0

Что это? C или Objective-C? Огромная разница в ваших вариантах. – rmaddy

ответ

-1

Вы можете сделать это путем сохранения номера как строки, вот пример для суммирования числа, которые represnet таким образом (его в C++ но должно быть достаточно легко преобразовать его в 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; 
}