Я сделал этот пример с помощью цикла For. А с помощью цикла while как это сделать?

Препод дал задание сделать этот пример с помощью цикла while. Но у меня не получается. А вот с помощью цикла for легко получилось. Можно ли здесь применить цикл while? Как это сделать? подскажите пожалуйста.

#include <iostream>
#include <string>
#include <cmath>

using namespace std;

int main()

{
    
    double x;
    double x1;
    int n; 
    double factorial = 1; 
    double sum = 1; 

    cout << "Введите х (в радианах): ";
    cin >> x;
    cout << "cos(x) = " << cos(x) << endl;
    cout << "Введите количество элементов в ряду: ";
    cin >> n;

    int z = 1;
    x1 = 1;

    for (int i = 1; i <= 2 * n; ++i) {
        factorial *= i;
        if (i % 2 == 0) {
            x1 = x * x1;
            z = (-z);
            sum += z * ((x1 * x1) / factorial);
        }
    }
    cout << "Сумма ряда = " << sum << endl;

    system("pause");
    return 0;
}

Ответы (1 шт):

Автор решения: Danis
int i = 1;
while (i <= 2 * n){
    factorial *= i;
    if (i % 2 == 0) {
        x1 = x * x1;
        z = (-z);
        sum += z * ((x1 * x1) / factorial);
    }
    i++;
}
→ Ссылка