История изменений
Исправление ziemin, (текущая версия) :
По идее здесь надо рекурсивно работать. Как-то так
long count(long number) {
long cadd = 0;
long csub = 0;
if (number == 0) {
return 0;
} else if (number % 2 == 0) {
return 1 + count(number / 2);
} else {
cadd = count(number + 1);
csub = count(number - 1);
if (cadd < csub) {
return 1 + cadd;
} else {
return 1 + csub;
}
}
}
Некрасиво, зато наглядно. На современных машинах стека должно хватить.
Исправление ziemin, :
По идее здесь надо рекурсивно работать. Как-то так
int count(int number) {
int cadd = 0;
int csub = 0;
if (number == 0) {
return 0;
} else if (number % 2 == 0) {
return 1 + count(number / 2);
} else {
cadd = count(number + 1);
csub = count(number - 1);
if (cadd < csub) {
return 1 + cadd;
} else {
return 1 + csub;
}
}
}
Некрасиво, зато наглядно. На современных машинах стека должно хватить.
Исправление ziemin, :
По идее здесь надо рекурсивно работать. Как-то так
int count(int number) {
int cadd = 0;
int csub = 0;
if (number == 0) {
return 0;
} else if (number % 2 == 0) {
return 1 + count(number / 2);
{ else {
cadd = count(number + 1);
csub = count(number - 1);
if (cadd < csub) {
return 1 + cadd;
} else {
return 1 + csub;
}
}
}
Некрасиво, зато наглядно. На современных машинах стека должно хватить.
Исходная версия ziemin, :
По идее здесь надо рекурсивно работать. Как-то так
int count(int number) {
int cadd = 0;
int csub = 0;
if (number == 0) {
return 0;
} else if (number % 2) {
return 1 + count(number / 2);
{ else {
cadd = count(number + 1);
csub = count(number - 1);
if (cadd < csub) {
return 1 + cadd;
} else {
return 1 + csub;
}
}
}
Некрасиво, зато наглядно. На современных машинах стека должно хватить.