Я выполняю задание, которое требует, чтобы я добавил 2 int и потребовал, чтобы я сделал рекурсию. Ниже мой код, но мой вывод всегда на 10 больше, чем на ответ. Зачем? Мой первоначальный перенос является 0.Добавление 2 целых чисел рекурсивно с переносом
int add(int n1,int n2,int carry){
if(n1>0){
if(carry == 1)
n1= n1+1;
if((n1%10+n2%10)>9)
return n1%10 + n2%10 + 10*add(n1/10,n2/10,1);
else
return n1%10 + n2%10 + 10*add(n1/10,n2/10,0);
}
else{
return 0;
}
}
я попытался добавить 999 и 999 результат дал мне 2008 ... каждый раз, когда есть кэрри участие там, кажется, добавление 10 появляясь – Jason