spoj http://www.spoj.com/problems/JULKA/

时间:2014-02-18 04:58:42

标签: c++

    //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

解释在for循环中我们正在分割和调制的原因是什么2.添加0的意义是什么

1 个答案:

答案 0 :(得分:0)

第一个循环是将temp []中表示为字符串的十进制数除以2. / 2实际上是将一位数除以2,而%2是将余数应用于下一位数 - 这就是为什么它乘以10。

“0”的加法和减法是将原始数字与其ASCII表示之间的单个数字转换为字符。