05.10.2013, 22:53. Просмотров 434. Ответов 6
Здравствуйте, есть кусок кода какой в принципе понятен как он работает ну вот только не могу понять строку
C++ |
1
| sum=min[i]+max[i+max.length()-min.length()]+carry-2*'0'; |
|
именно -2*0; И на бумажке питалась понять, просто как можно сложить int + char, получается бред. Заодно спрошу (char)? Это перевод типа int в char так?
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| string operator+(string sum1, string sum2){
string result ="";
int carry=0;
int sum=0;
int i;
string min=sum1;
string max=sum2;
if(sum1.length()>sum2.length()){
max=sum1;
min=sum2;}
else {
max=sum2;
min=sum1;
}
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;
} |
|