Вася вносит X руб.У него имеются номиналы:1,2,5,10,50,100,500. Сколько РАЗНЫХ купюр он отдаст,если начинает с больших? (как решить с помощью ДЕЛЕНИЯ?

Чтобы решить эту задачу с помощью деления, мы можем применить жадный алгоритм.

Жадный алгоритм в данном случае будет заключаться в следующем:

1. Создаем массив номиналов купюр, отсортированный по убыванию.
2. Инициализируем переменную count = 0, которая будет отвечать за количество разных купюр, которые Вася отдаст.
3. Для каждого номинала купюры в массиве номиналов, начиная с наибольшего:
a. Пока X больше или равно этому номиналу купюры, увеличиваем значение count на 1.
b. Делаем целочисленное деление X на номинал купюры, чтобы узнать, сколько таких купюр Вася отдаст.
c. Вычитаем из X полученное количество купюр по данному номиналу.
4. В конце цикла получим количество разных купюр, которые Вася отдал.

Вот код на языке Java, реализующий описанный алгоритм:

public class Main {
    
    public static void main(String[] args) {
        int[] denominations = { 500, 100, 50, 10, 5, 2, 1 };
        int x = 1234; // Вася вносит Х рублей

        int count = 0;
        
        for (int i = 0; i < denominations.length; i++) {
            if (x >= denominations[i]) {
                count++;
                int numOfBills = x / denominations[i];
                x -= numOfBills * denominations[i];
            }
        }
        
        System.out.println("Количество разных купюр, которые Вася отдал: " + count);
    }
}

Запустив эту программу, мы получим следующий результат:

Количество разных купюр, которые Вася отдал: 4

То есть, если Вася внес X = 1234 рубля, то отдаст он 4 разных купюры с номиналами: 500 рублей, 100 рублей, 10 рублей и 2 рубля.