2014-02-18 2 views
-3
//explain below for loop what is actually being done in this loop// 
    for(i=k-1, j=a=f=0; i>=0; i--) 
    { 
     b = (a*10 + temp[i]-'0')/2; //explain 
     a = (a*10 + temp[i]-'0') % 2;//explain 
     if(b) f = 1;//explain 
     if(f) klaudia[j++] = b+'0';//explain 
    } 
    if(!j) j++;//explain 
    klaudia[j] = 0;//explain 

    for(i=len1-1, j=len2-1, k=c=0; i>=0; i--, j--, k++) 
    { 
     a = total[i]-'0';//explain 
     b = j>=0? diff[j]-'0' : 0;//explain 
     if(a < b+c) 
     { 
      temp[k] = (10+a-b-c) + '0';//explain 
      c = 1;//explain   } 
     else 
     { 
      temp[k] = a-b-c + '0';//explain 
      c = 0;//explain 
     } 
    } 
    temp[k] = 0;//explain 

объяснить, что делается в обоих цикл выше, почему мы делим и модуляции на 2. какова signifinace добавления 0SPOJ http://www.spoj.com/problems/JULKA/

+0

@YuHao: Возможно, он неоднократно указывал, что он был поклонником Сары Пэйлин (если так, редактирование, вероятно, было хорошим шагом). –

+0

@YuHao исправил правописание теперь человек может кто-нибудь, пожалуйста, объясните цикл for now – codingisfun

+2

@codingisfun Вернуться к теме, как вы опубликовали сообщение о связанной с вами проблеме? Вы только что нашли этот код где-то в сети (если так, я бы не стал снова посещать этот сайт ...) – user1520427

ответ

0

Первый цикл - деление десятичного числа, выраженное в виде строки в temp [] на 2. В/2 буквально разделить одну цифру на 2, а% 2 - на оставшуюся часть, чтобы применить к следующей цифре - которая поэтому затем умножается на 10.

Дополнения и вычитания на '0' - это преобразование отдельных цифр между необработанным номером и его представлением ASCII в качестве символа.