В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
ЧараX
ЧараX
14.10.2021 04:37 •  Информатика

Выручайте нужно узнать почему не считает: найти произведение всех целых чисел от a до 20 (значение a вводится с клавиатуры: 1 < =a < = 20). #include using namespace std; void main() { int a; cin > > a; int res = 1; for (int i = a; i < = 20; ++i) res *= i; cout < < a; return ; }

Показать ответ
Ответ:
Marmaladee
Marmaladee
03.10.2020 03:27
#include <iostream>
using namespace std;
int main() {
int a;
cin>>a;
long res = 1;
for (int i=a; i<=20; ++i)
res *= i;
cout<<res<<"\n";
return 0;
}

Значение 20 (выделено в программе) вызывает арифметическое переполнение при небольших а. Попробуйте задать a=19 или 18.
0,0(0 оценок)
Ответ:
maksik008
maksik008
03.10.2020 03:27
Если вам надо включать в произведение:
#include <iostream>
using namespace std;
void main()
{
int a;
cin >> a;
int res = 1;
if (a < 20) 
{
for (int i = a; i <= 20; ++i)
res = i*res;
}
cout << res;
system("pause");
}

Если не надо то измените i<=20 на i<20
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота