
Вопрос задан 09.08.2023 в 07:46.
Предмет Информатика.
Спрашивает Карпачёва Анастасия.
Программа на C++ Напишите программу, которая вводит два целых числа и находит их произведение, не
используя операцию умножения. Учтите, что числа могут быть отрицательными. Входные данные Входная строка содержит два целых числа. Выходные данные Программа должна вывести произведение введённых чисел. Примеры входные данные 6 12 выходные данные 72 входные данные -7 15 выходные данные -105

Ответы на вопрос

Отвечает Сазонов Артем.
#include <iostream>
using namespace std;
int multiply(int x, int y)
{
if(y == 0)
return 0;
if(y > 0)
return (x + multiply(x, y - 1));
if(y < 0)
return -multiply(x, -y);
}
int main()
{
int a, b;
cin >> a >> b;
cout << multiply(a, b) << endl;
return 0;
}
using namespace std;
int multiply(int x, int y)
{
if(y == 0)
return 0;
if(y > 0)
return (x + multiply(x, y - 1));
if(y < 0)
return -multiply(x, -y);
}
int main()
{
int a, b;
cin >> a >> b;
cout << multiply(a, b) << endl;
return 0;
}



Отвечает Вешняков Тимур.
#include <cstdio>
#include <cstdlib>
int
main(void)
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
long long mul = 0;
for (int i = 0; i < abs(a); i++) {
mul += b;
}
if (a < 0) {
mul = -mul;
}
printf("%lld\n", mul);
return 0;
}
#include <cstdlib>
int
main(void)
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
long long mul = 0;
for (int i = 0; i < abs(a); i++) {
mul += b;
}
if (a < 0) {
mul = -mul;
}
printf("%lld\n", mul);
return 0;
}



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Конечно, вот пример программы на C++, которая выполняет указанную задачу:
cpp#include <iostream>
int main() {
int a, b;
// Ввод двух целых чисел
std::cout << "Введите два целых числа: ";
std::cin >> a >> b;
int result = 0;
// Если оба числа равны нулю, то их произведение также будет нулем
if (a == 0 || b == 0) {
result = 0;
}
// Если одно из чисел отрицательное, то можно изменить порядок их сложения
else if (a < 0 && b > 0) {
for (int i = 0; i > a; i--) {
result -= b;
}
} else if (a > 0 && b < 0) {
for (int i = 0; i > b; i--) {
result -= a;
}
}
// Если оба числа отрицательные, то меняем их знаки и используем положительное произведение
else if (a < 0 && b < 0) {
a = -a;
b = -b;
for (int i = 0; i < b; i++) {
result += a;
}
}
// Если оба числа положительные, то выполняем умножение через сложение
else {
for (int i = 0; i < b; i++) {
result += a;
}
}
// Вывод результата
std::cout << "Произведение чисел: " << result << std::endl;
return 0;
}
Этот код сначала считывает два целых числа, затем выполняет умножение через сложение в зависимости от знаков введенных чисел.


Похожие вопросы
Топ вопросов за вчера в категории Информатика

Информатика 47

Информатика 33

Информатика 67

Информатика 18

Информатика 25

Информатика 563

Информатика 16
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili