void arithmeticProgression(const int& first, const int& differense, const int& N){ // first - первый номер арифметической прогрессии // difference - разность // N - число, до которого продолжать прогрессию
static int sum = 0; // тут будет сумма static int callsNumber = 0; // считаем число вызовов функции для определения номера элемента последовательности int next = first + differense; // следующий элемент прогрессии sum += first; // подсчет суммы
if(callsNumber == N){ cout << "finally item: " << first << endl; cout << "sum: " << sum << endl; sum = 0; callsNumber = 0; return; // если следующий элемент идет по порядку больше N, то прервать рекурсию } else{ callsNumber++; arithmeticProgression(next, differense, N); // иначе делать тоже самое со следующим числом прогрессии } }
int main(){ arithmeticProgression(2, 3, 3); // пример вызова return 0; }
x
2
+
y
2
=
16
...
...
...
...
...
...
.
.
(
1
)
x + y = 4 (2)
rearrange (2) to y = 4 - x (could do x = 4 - y )
substitute y = 4 - x into (1)
hence:
x
2
+
(
4
−
x
)
2
=
16
⇒
x
2
+
16
−
8
x
+
x
2
=
16
and
2
x
2
−
8
x
+
16
−
16
=
0
⇒
2
x
2
−
8
x
=
0
factor and solve : 2x(x - 4 ) = 0
⇒
x
=
0
,
x
=
4
substitute these values into y = 4 - x , to find corresponding values of y.
x = 0 : y = 4 - 0 = 4 → (0 , 4)
x = 4 : y = 4 - 4 = 0 → (4 , 0 )
These are the points of intersection with the line x +y = 4 and the circle
x
2
+
y
2
=
16
Answer link
Объяснение:
using namespace std;
void arithmeticProgression(const int& first, const int& differense, const int& N){
// first - первый номер арифметической прогрессии
// difference - разность
// N - число, до которого продолжать прогрессию
static int sum = 0; // тут будет сумма
static int callsNumber = 0; // считаем число вызовов функции для определения номера элемента последовательности
int next = first + differense; // следующий элемент прогрессии
sum += first; // подсчет суммы
if(callsNumber == N){
cout << "finally item: " << first << endl;
cout << "sum: " << sum << endl;
sum = 0;
callsNumber = 0;
return; // если следующий элемент идет по порядку больше N, то прервать рекурсию
}
else{
callsNumber++;
arithmeticProgression(next, differense, N); // иначе делать тоже самое со следующим числом прогрессии
}
}
int main(){
arithmeticProgression(2, 3, 3); // пример вызова
return 0;
}