Получить два целых числа и найти их произведение, не используя операцию умножения - C (СИ)
Формулировка задачи:
Напишите программу, которая получает два целых числа и находит их произведение, не используя операцию умножения. Учтите, что числа могут быть отрицательными
Пример:
Введите два числа:
10 -15
10*(-15)=-150
Решение задачи: «Получить два целых числа и найти их произведение, не используя операцию умножения»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main(void) { int a, b; scanf("%d%d", &a, &b); int sign = (a < 0) == (b < 0) ? 1 : -1; a = abs(a); b = abs(b); int* min = a < b ? &a : &b; int* max = a < b ? &b : &a; int sum; for (sum = 0; *min != 0; sum += *max, (*min)--); printf("%d\n", sum * sign); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Объявляем переменные a и b типа int
- Считываем значения a и b с помощью функции scanf
- Находим знак числа, используя оператор сравнения и логическое преобразование результатов
- Преобразуем значения a и b в положительные числа с помощью функции abs
- Получаем указатель на меньшее число из двух, используя оператор сравнения и оператор инкремента
- Получаем указатель на большее число из двух, используя оператор сравнения и оператор инкремента
- Инициализируем переменную sum с помощью цикла for и получаем произведение значений a и b
- Возвращаем произведение значений a и b, умноженное на знак числа, с помощью функции printf
- Завершаем программу и возвращаем 0
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д