Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/55: Рейтинг темы: голосов - 55, средняя оценка - 4.93
3 / 3 / 4
Регистрация: 08.04.2011
Сообщений: 201
1

1*2+2*3*4+n...2n вычислить

02.10.2011, 14:03. Показов 10507. Ответов 13
Метки нет (Все метки)

1*2+2*3*4+n...2n помогите пожалуйста (хотя бы начало) вычислить эту формулу. вообще это выглядит так при n=6: (1*2)+(2*3*4)+(3*4*5*6)+(4*5*6*7*8)+(5*6*7*8*9*10)+(6*7*8*9* 10*11*12) (скобки чтобы виднее было поставлены)
это примерно выглядит так:
for i :=1 to n do
S:=i*(i+1)
S:=i*(i+1)*(i+2)
S:=i*(i+1)*(i+2)*(i+3) (это чисто схематично) не получается постоянно увеличивать множитель (i+1) и складывать всё это дело. как это сделать???
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2011, 14:03
Ответы с готовыми решениями:

Задан массив А размером п. Вычислить среднее арифметическое положительных элементом. Вычислить a1 • a2 + a2 • a3 + + an -1 • an
помогите решить, пожалуйста! Задан массив А размером n. Вычислить среднее арифметическое...

Вычислить произведение элементов столбца матрицы . Вычислить максимальный элемент
Помогите, нужно вычислить произведение элементов второго столбца матрицы Y(3x4). . Вычислить...

Вычислить минимальное число операций, за которое можно вычислить выражение
Дано действительное число x. Не пользуясь никакими другими арифметическими операциями кроме...

Даны целые числа X,Y,Z. Вычислить MAX(X+Y,XYZ). Вычислить MIN(X,Y,Z X-Y)
1. Даны целые числа X,Y,Z. Вычислить MAX(X+Y,XYZ). 2. Даны целые числа X,Y,Z. Вычислить...

13
Заблокирован
Автор FAQ
02.10.2011, 14:36 2
Цитата Сообщение от tesler Посмотреть сообщение
1*2+2*3*4+n...2n помогите пожалуйста (хотя бы начало) вычислить эту формулу. вообще это выглядит так при n=6: (1*2)+(2*3*4)+(3*4*5*6)+(4*5*6*7*8)+(5*6*7*8*9*10)+(6*7*8*9* 10*11*12) (скобки чтобы виднее было поставлены)
это примерно выглядит так:
for i :=1 to n do
S:=i*(i+1)
S:=i*(i+1)*(i+2)
S:=i*(i+1)*(i+2)*(i+3) (это чисто схематично) не получается постоянно увеличивать множитель (i+1) и складывать всё это дело. как это сделать???
Вот на плюсах
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    unsigned long i,j,n,sum,mult;//ULONG - чтобы n > 0 и в sum и mult всё поместилось
    do
    {
        std::cout<<"Enter n : ";std::cin>>n;
        sum = 0;//Обнулили сумму
        for(i = 1; i <= n; i++)
        {
            mult = 1;
            for(j = i; j < i + (i + 1); j++)
            {
                std::cout<<j;
                if(j < i + (i + 1) - 1)
                    std::cout<<"*";
                else
                    if(i < n)
                        std::cout<<" + ";
                    else
                        std::cout<<"\r\n";
                mult *= j;
            }
            sum += mult;
        }
        std::cout<<"sum = "<<sum<<"\r\n";
        std::cout<<"Press Y for new input\r\n";
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
Миниатюры
1*2+2*3*4+n...2n вычислить  
1
Заблокирован
Автор FAQ
02.10.2011, 14:41 3
Это лишь для отображения выводимой последовательности(да и для себя при отладке использовал), при жлеании можно убрать...
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
if(j < i + (i + 1) - 1)
* * * * * * * * * * * * * * * * * * * * std::cout<<"*";
* * * * * * * * * * * * * * * * else
* * * * * * * * * * * * * * * * * * * * if(i < n)
* * * * * * * * * * * * * * * * * * * * * * * * std::cout<<" + ";
* * * * * * * * * * * * * * * * * * * * else
* * * * * * * * * * * * * * * * * * * * * * * * std::cout<<"\r\n";
1
Заблокирован
02.10.2011, 16:00 4
для любителей метапрограммирования и автору для расширения кругозора:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
template <int x> struct factorial
{
    enum { value = factorial<x-1>::value * x };
};
 
template <> struct factorial<1>
{
    enum { value = 1 };
};
 
template <> struct factorial<0>
{
    enum { value = 1 };
};
 
 
 
/**Слагаемые*/
template <int x> struct summand
{
    enum { value = factorial<x*2>::value / factorial<x-1>::value };
};
 
 
 
/**Искомая сумма ряда*/
template <int x> struct range
{
    enum { value = (range<x-1>::value + summand<x>::value) };
};
 
template <> struct range<1>
{
    enum { value = summand<1>::value };
};
 
 
int main()
{
    cout << range<4>::value << endl;
 
    system("pause");
 
    return 0;
}
Добавлено через 17 минут
работает впритык до 6, но если надыбыть компилятор с С++11 то можно также unsigned long запихать в enum и тогда чуть побольше можно взять)
1
3 / 3 / 4
Регистрация: 08.04.2011
Сообщений: 201
02.10.2011, 19:09  [ТС] 5
ЮРА, я вот только начинаю изучать си++, вы не могли бы объяснить что значит
C++
1
std::cout<<"*";
само вот :: эти двоеточия, что это за операция (остальное впринципе понятно),
спасибо за ответы, очень помогли
0
1 / 1 / 1
Регистрация: 25.09.2011
Сообщений: 15
02.10.2011, 19:24 6
2 tesler,
http://www.askdev.ru/c-plus-pl... espace-std
1
3 / 3 / 4
Регистрация: 08.04.2011
Сообщений: 201
02.10.2011, 20:44  [ТС] 7
в коде (первом) объявлено
C++
1
2
3
#include <iostream>
#include <conio.h>
using namespace std;
, это значит что в последующем я могу не использовать этот префикс
C++
1
 std::
я правильно понимаю???
0
Заблокирован
Автор FAQ
02.10.2011, 21:05 8
Цитата Сообщение от tesler Посмотреть сообщение
само вот :: эти двоеточия, что это за операция (остальное впринципе понятно),
, на пальцах так существуют различные пространсва имён например stdin(определённое в stdio.h - доступ в стиле Си) и std - обявленное в iostream(доступ к буферу консоли в стиле С++). Этот оператор :: указывает на область видимости операндов следующих за ним(http://en.wikipedia.org/wiki/O... nd_C%2B%2B)
Не хочу вдаваться зачем это нужно и впринципе в вашем случае можно писать cout cin без std

Добавлено через 1 минуту
Цитата Сообщение от tesler Посмотреть сообщение
я правильно понимаю???
- нет это означает что вы будете использовать фунции объявленные в iostream и в дальнейшем в программе не будет проблем при пересечении с аналогичными именами функции объявленных в других namespace-ах

Добавлено через 4 минуты
tesler, Работайте с кодом ниже, он более понятен
Код С++
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    unsigned long i,j,n,sum,mult;//ULONG - ÷òîáû n > 0 è â sum è mult âñ¸ ïîìåñòèëîñü
    do
    {
        cout<<"Enter n : ";cin>>n;
        sum = 0;//Îáíóëèëè ñóììó
        for(i = 1; i <= n; i++)
        {
            mult = 1;
            for(j = i; j < i + (i + 1); j++)
            {
                cout<<j;
                if(j < i + (i + 1) - 1)
                    cout<<"*";
                else
                    if(i < n)
                        cout<<" + ";
                    else
                        cout<<"\r\n";
                mult *= j;
            }
            sum += mult;
        }
        cout<<"sum = "<<sum<<"\r\n";
        cout<<"Press Y for new input\r\n";
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
1
3 / 3 / 4
Регистрация: 08.04.2011
Сообщений: 201
02.10.2011, 21:44  [ТС] 9
спасибо!
0
Заблокирован
Автор FAQ
30.09.2012, 17:52 10
По просьбе загадочного DiKz в ВК выкладываю вариант для BorlandC(Turbo C)
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>//printf/scanf
#include <conio.h>//getch
#include <ctype.h>//toupper
 
int main()
{
    //ULONG - чтобы n > 0 и в sum и mult всё поместилось
    unsigned long i = 0;
    unsigned long j = 0;
    unsigned long n = 0;
    unsigned long sum=0;
    unsigned long mult = 1;
    do
    {
        printf("Enter n : ");scanf("%u",&n);
        getchar();//Убарли \n от ввода
        sum = 0;//Обнулили сумму
        for(i = 1; i <= n; i++)
        {
            mult = 1;
            for(j = i; j < i + (i + 1); j++)
            {
                printf("%d", j);
                if(j < i + (i + 1) - 1)
                    printf("*");
                else
                    if(i < n)
                        printf(" + ");
                    else
                        printf("\r\n");
                mult *= j;
            }
            sum += mult;
        }
        printf("sum = %d\r\n", sum);
        printf("Press Y for new input\r\n");
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
Миниатюры
1*2+2*3*4+n...2n вычислить   1*2+2*3*4+n...2n вычислить  
Вложения
Тип файла: rar DIKZ.exe.rar (9.2 Кб, 5 просмотров)
0
Proger_01
01.10.2012, 10:41 11
Юра, я писал тебе в контакте, я в агенте постоянно, может лучше там напрямую связаться и ты поможешь мне?
-=ЮрА=-
01.10.2012, 16:37
  #12

Не по теме:

Цитата Сообщение от Proger_01 Посмотреть сообщение
Юра, я писал тебе в контакте, я в агенте постоянно, может лучше там напрямую связаться и ты поможешь мне?
- хорошо пиши, но в данный момент я очень загружен.

0
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
01.10.2012, 16:57 13
Цитата Сообщение от tesler Посмотреть сообщение
ЮРА, я вот только начинаю изучать си++, вы не могли бы объяснить что значит
C++
1
std::cout<<"*";
само вот :: эти двоеточия, что это за операция (остальное впринципе понятно),
спасибо за ответы, очень помогли
это разрешение области видимости. Означает что cout относится к пространству имён std.
0
-=ЮрА=-
01.10.2012, 17:12     1*2+2*3*4+n...2n вычислить
  #14

Не по теме:

SeregaC++, Я лучше дам линк на запись в моём блоге using namespace std и std:: надоело смотреть! - прочтя её всё станет ясно, зачем, что это и нужно ли оно. А так это раскрытие области видимости, т.е полученя доступа к базовым методам, переменным какого либо класса или же namespace как в данном случае. Лично я уже не пишу std::cout а пишу using namespace std после хедеров и использую привычные глазу cin, cout

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.10.2012, 17:12

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Вычислить элемент матрицы А и вычислить суммы элементов каждой строки
Напечатать матрицу А и вычислить суммы элементов каждой строки матрицы А

Вычислить max(x + y + z, x * y * z), если все эти числа больше 0, иначе вычислить переменную d=x ^ y.
Даны действительные числа x,y,z. Вычислите max(x+y+z,x*y*z), если все эти числа больше 0, иначе...

Вычислить среднее арифметическое отрицательных чисел. Вычислить сумму элементов каждой строки
Помогите с реализацией задачи: Задать целочисленный двумерный массив NxM (значения N, M вводятся с...

Вычислить сумму чисел:в указанном пределе, с неопределенным пределом. Вычислить значение выражения
s=\sum_{n=1}^{15}*{(-1)}^{n+1}*\frac{2*sin(n*x)}{n},y=x Помогите найти ошибку. unit Unit1; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.