Великий добуток#9001

Великий добуток (Розбір)

Аналіз алгоритму

У вирішенні будемо виходити з того, що a \leq b.

Приклад

У третьому прикладі добуток має вигляд: (-7) * (-6) * (-5) * (-4) * (-3) * (-2) * (-1)

Добуток містить 7 від'ємних множників. Числа a = -7 і b = -1 мають однакову парність. Отже, добуток від'ємний.

Реалізація алгоритму

Читаємо вхідні дані.

scanf("%d %d", &a, &b);

Якщо всі множники додатні, то відповідь 1.

if (a > 0) res = 1;

Якщо серед множників є 0, то відповідь 0.

else if (a <= 0 && b >= 0) res = 0;

Якщо всі множники від'ємні, то відповідь визначається кількістю множників. Якщо число множників парне ( і мають різну парність), то відповідь 1. Інакше відповідь -1.

else
{
    if ((b - a) % 2 == 0) res = -1;
    else res = 1;
}

Виводимо відповідь.

printf("%d\n", res);

Java реалізація

import java.util.*;

public class Main
{
    public static void main(String[] args) 
    {
        Scanner con = new Scanner(System.in);
        int a = con.nextInt();
        int b = con.nextInt();
        int res;

        if (a > 0) res = 1;
        else if (a <= 0 && b >= 0) res = 0;
        else
        {
            if ((b - a) % 2 == 0) res = -1;
            else res = 1;
        }

        System.out.println(res);
        con.close();
    }
}

Python реалізація

a, b = map(int, input().split())

if a > 0: res = 1
elif a <= 0 and b >= 0: res = 0
else:
    if (b - a) % 2 == 0: res = -1
    else: res = 1

print(res)