Сообщение от 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;
}