Мне нужно вычислить 1*2 + 2*3*4 + 3*4*5*6 + ... в моей программе при вводе 2 выдаёт 32,а должно 26
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_CTYPE, "rus");
int n;
int p = 1;
cout << "Введи число: ";
cin >> n;
for (int i = 0, s = 0, d = 0,j = 0; i < 2 * n; i++, j = i + 1 , p = p * j, s = s + p) {
cout << "Результат: " << s << endl;
}
}
Думаю, не стоит мудрить, а просто реализовать шаг за шагом
int n;
int sum = 0;
cout << "Введи число: ";
cin >> n;
for (int start = 1; start <= n; start++) {
int product = 1;
for (int j = start; j <= 2 * start; j++)
product *= j;
sum += product;
}
cout << "Результат: " << sum << endl;
P.S. Сейчас увидел прошлую тему автора - так в ней на Паскале точно так же и сделано.
Я бы действовал так, не начиная считать каждый член суммы заново и не делая второго цикла:
int main(int argc, const char * argv[])
{
unsigned int n;
cin >> n;
unsigned long long sum = 2, term = 2; // Первоначальные значения для n == 1
for(unsigned int i = 2; i <= n; ++i) // Цикл от 2 до n
{
term /= i-1; // Новый член получается из старого делением на
sum += term *= (2*i-1)*2*i; // первый множитель и умножением на еще два
}
cout << sum << endl;
}
И еще - для типа результата int
можно просто сделать табличку из 7 чисел - все равно дальше начинается переполнение :) Впрочем, даже unsigned long long
тоже хватит только на 14 значений...
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Раньше я думал что динамическая память нужна для того чтобы выделять там память под массивы типов, размер которых не известен во время компиляцииСейчас...
Напишите функцию, которая принимает на вход два числа, и возвращает сумму всех чисел между ними, которые делятся на 5 или на одно из этих...
Я разделил свою программу на три файлаВсе они находятся в одной папке и запускаются в компиляторе g++ как g++ main