Показать сообщение отдельно
  #6 (permalink)  
Старый 26.01.2012, 08:03
С++/C# modest developer
Отправить личное сообщение для nekto_O Посмотреть профиль Найти все сообщения от nekto_O
 
Регистрация: 07.11.2011
Сообщений: 244

Сообщение от function
Ведь в 1 примере происходит сравнение (n != 1) с x*pow(x,n-1), и если оно верно возвращается х.
вы видимо не понимаете смысл краткой формы записи условного оператора. В условии производится сравнение не (n != 1) с x*pow(x,n-1) как вы сказали, а n с 1, следовательно если условие выполняется, функция возвращает свой 1-й аргумент, в противном случае возвращает результат выражения
x*pow(x, n-1)

Поэтому
return (n != 1) ? x*pow(x,n-1) : x;

будет аналогично
if( n == 1 ) {
     return x;
} else {
     return x*pow(x, n-1);
}

или
if( n != 1 ) {
     return x*pow(x, n-1);
} else {
     return x;
}
Ответить с цитированием