cout<<”Сумма отрицат элементов
S=”<<S;
return(0);
}
№3
Найти сумму
первых R-отрицат элементов (R=3).
Для решения этой задачи введем дополнительную переменную l, в этой переменной будет храниться
уже подсчитанное количество отрицательных элементов. В цикле, как только
встретится «-»элемент мы должны его добавить в сумму и увеличить на 1 значение l.
Как только значение l совпадет со значением k это будет означать, что дальше суммировать элементы не нужно и можно заканчивать выполнение цикла.
int main()
{
const int n=10;
int a[n]={…};
int S=0;
for (int i=0; i<n;i++)
if(l<n)//если еще не нашли k-элементов
if(a[i]<0){S+=a[i];++l}
return(0);
}
Иначе, если k; else break…..
for (i=0; i<n; l<k; i++)
{ if(a[i]<0)
{ S+=a[i];
++l;}
}
Для поиска мин. элемета введ. дополн. переменную, назовем mini. В эту переменную запишем значение 1-го элемента массива. После этого в цикле будем перебирать все значения элемента массива и сравнивать с mini.
Рекурсивные функции называется вызов
функции в теле самой этой же функции.
n!=1*2*3*…*(n-1)*n
n!=
Или
n!=
long
int factor (int n)
{ If(n=0)
return 1;
else return factor(n-1);
}
void
main()
{ cout<<factor(3); }
Достоинства рекурсивных функций:
· Простая и комплексная реализация для некоторых алгоритмов
· При вызовах рекурс. функий многократно выделяетсяв памяти под хранение локальных данных
· Каждый вызов функции требует определенных временных затрат.
Если решить одну и туже задачу можно использую рекурсию и не используя рекурсию, то лучше не использовать, а пользоваться циклом.
long
int factor (int n)
{ long int f=1;
for(int i=1; i<=n; ++i)
f*=I;
return f;
}
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.