Вычислить: 1+2+4+8+....+2^10 и (1+2)*(1+2+3)*....*(1+2+....+10) С++ использовать long long
в чем ошибка у меня в произведении ответ не правильный получается
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
long long s = 0;
long long p = 1;
for (int i = 0; i <= 10; i++) {
int t = 1 << i;
s += t;
}
for (int i = 1; i <= 10; i++) {
s += i;
p *= s;
cout << "Сумма: " << s << endl;
cout << "Произведение: " << p << endl;
}
return 0;
}
Answers & Comments
Проблема в вашем коде заключается в том, что вы неправильно вычисляете произведение. Вы накапливаете сумму s и затем умножаете ее на p, не сбрасывая s между итерациями. Вам также следует начать инициализацию s и p внутри первого цикла и вывести результаты после второго цикла, чтобы получить правильные ответы.
Вот исправленный код:
cpp
Copy code
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
long long s = 0;
long long p = 1;
for (int i = 0; i <= 10; i++) {
int t = 1 << i;
s += t;
}
for (int i = 1; i <= 10; i++) {
p *= (s + i);
}
cout << "Сумма: " << s << endl;
cout << "Произведение: " << p << endl;
return 0;
}
Теперь вам следует получить правильные ответы для суммы и произведения.