Сумма 1/sin(1) + 1/(sin(1) + sin(2)) + … + 1/(sin(1)+sin(2)+…+sin(n))

Уровень сложности:

Вычислить сумму 1/sin1+1/(sin1+sin2)+…1/(sin1+…+sinn), где n — заданное натуральное число.

Не сложная задача, решение которой неоднозначно, можно использовать различные операторы и структуры кода. конечно же без цикла тут не обойтись. Результат работы программы показан ниже:

// sum_sin.cpp: определяет точку входа для консольного приложения.

#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;

double sumSin(int); //прототип функции суммирования синусов по формуле

int main(int argc, char* argv[])
{
    int n; // энный член выражения
    double  sum = 0; // сумма
    setlocale(LC_ALL, "rus");
    cout << "Введите n: ";
    cin >> n;

    for (int counter = 1; counter <= n; counter++)
    {
        sum += 1 / sumSin(counter); // вычисляем сумму согласно выражению 
    }

    cout << "Сумма = " << sum << endl;
    system("pause");
    return 0;
}

double sumSin(int n) // функция суммирования синусов согласно формуле
{
    double p = M_PI;
    double temp_sum = 0; //  временная переменная для хранения суммы

    for (int counter = 1; counter <= n; counter++)
    temp_sum += sin((double)counter*p/180); // накапливаем сумму синусов

    return temp_sum;
}

Пример работы программы:

CppStudio.com
Введите n: 10
Сумма = 104.203
Следующие статьи помогут вам в решении данной задачи:
Автор: admin
Дата: 12.09.2012
Поделиться:

Комментарии

  1. odto11

    odto11

    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int main()
    {
        int n = 0;
        double sum = 0;
        double sumsum = 0;
        const double Pi = 3.1415;
        cout << "\tСумма 1/sin(1) + 1/(sin(1) + sin(2)) + … + 1/(sin(1)+sin(2)+…+sin(n))\n";
    
        cout << "Введите n: ";
        cin >> n;
    
        for(int i = 1; i <= n; i++)
        {
            sum += sin((i)*(Pi/180));
            sumsum += 1/sum;
        }
        cout << "Сумма:" << sumsum << endl;
    
        return 0;
    }
  2. colt

    #include "stdafx.h"
    #include "iostream"
    #include "windows.h"
    #include "cmath"
     
    using namespace std;
    
    #define PI 3.14
    
    int intNumb;
    double dSumm, dInvSumm;
    
    int _tmain(int argc, _TCHAR* argv[])
    {  
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
    	cout.flags(ios::fixed);
    	cout.precision(3);
     
        while(true)
        {  
            system("CLS");
    		cout<<"Введите n: ";
    		cin>>intNumb;	
    		dSumm=0;
    		dInvSumm=0;
    		for (int i=1;i<=intNumb;i++)
    		{
    			dSumm+=sin(static_cast<double>(i)*PI/180.0);
    			dInvSumm+=1.0/dSumm;
    		}
    		cout<<"Сумма = "<<dInvSumm<<"\n";
    		system("PAUSE");
        }
        return 0;
    }
  3. gro

    gro

    #include <iostream>
    #include <cmath>
    #define PI 3.14159265358979323846
    using namespace std;
    
    double sum(int n)
    {
    	double sumofsin = 0, sumofdiv = 0;
    	int numofsins = 0;
    	for (int i=1; i<=n; i++)
    	{
    		while (numofsins<=i)
    		{
    			sumofsin = sumofsin + sin(numofsins*PI/180);
    			numofsins++;
    		}
    		sumofdiv = sumofdiv + 1/sumofsin;
    	}
    	return sumofdiv;
    }
    
    int main()
    {
    	setlocale(LC_ALL,"rus");
    	int n=0;
    	while (n<1 || n>100000)
    	{
    		cin.clear();
    		_flushall();
    		cout << "Введите n для 1/sin(1) + 1/(sin(1)+sin(2)) + ... + 1/(sin(1) + ... + sin(n)): \nn = ";
    		cin >> n;
    	}
    	cout << "Сумма = " << sum(n) << endl;
    }
  4. Migizi

    Migizi

    #include <conio.h>
    #include <iostream>
    #include <istream>
    #define _USE_MATH_DEFINES
    #include <math.h>

    using namespace std;
    int main(void)
    {
    setlocale(LC_ALL, «Russian»);
    int y;
    cin >> y;
    double x = 0;
    double u = 0;
    for (int i = 1; i <= y; i++)
    {
    u = 0;
    for (int j = 1; j <= i; j++)
    {
    u += sin(j*M_PI / 180);
    }
    x += 1/u;
    }
    cout << x;
    _getch();
    return 0;
    }

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.