Форум программистов, компьютерный форум CyberForum.ru

Наименьшее количество купюр, которыми можно выдать n гривен - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти индекс минимального по модулю элемента массива http://www.cyberforum.ru/cpp-beginners/thread680387.html
Я нашел индекс минимального по модулю элемента массива... но, что делать, если в массиве несколько минимальных элементов, надо вывести индексы этих элементов, например: N=4 A=1 A=2 A=-5 A=1 У меня выводит только 0, а надо 0 и 3...
C++ Найти все пары "соседних" натуральных чисел, не больших N, троичные представления которых получаются друг из друга записью цифр в обратном порядке помогите написать цикл чтобы он выводил только эти нужные пары //--------------------------------------------------------------------------- #include <vcl.h> #include <math.h> #include <conio.h> #include <stdio.h> #pragma hdrstop #pragma argsused http://www.cyberforum.ru/cpp-beginners/thread680381.html
C++ Вычислить сумму элементов матрицы М (9х9), лежащих справа от главной диагонали (исправить ошибки)
помогите найти ошибки, неправильно написал код. условия таковы: Вычислить сумму элементов матрицы М (9х9), лежащих справа от главной диагонали. #include<stdio.h> #include<stdlib.h> #include <boost/numeric/ublas/matrix.hpp> int main() { int summa=0; for (int i=0;i<8;i++) // äëÿ ïîñëåäíåé ñòðîêè ñóììèðîâàòü íå÷åãî, ïîýòîìó òóò äî 8
C++ Дана целочисленная прямоугольная матрица. Определить номер строки, в которой находится самая длинная серия одинаковых элементов
Дана целочисленная прямоугольная матрица. Определить номер строки, в которой находится самая длинная серия одинаковых элементов.
C++ Сформировать квадратную матрицу по образцу http://www.cyberforum.ru/cpp-beginners/thread680372.html
Сформувати квадратну матрицю порядку n за заданим зразком: 0 0 0 . 0 0 0 1 0 . 0 0 0 0 2 . 0 0
C++ Метод попарно-обменной перестановки Условия программы: Упорядочить массив М (50) в порядке убывания методом попрано-обменной перестановки. Добавлено через 2 часа 3 минуты Как сделать такую программу? подробнее

Показать сообщение отдельно
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
25.10.2012, 21:43     Наименьшее количество купюр, которыми можно выдать n гривен
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*
В банкомате имеются в достаточном количестве купюры
номиналом 10, 20, 50, 100, 200 и 500 гривен. Найти
минимальное количество купюр, которое необходимо использовать,
чтобы выдать сумму в n гривен или вывести -1, если
указанную сумму выдать нельзя.
*/
 
#include <iostream>
#include <vector>
#include <algorithm>
 
int main(void)
{
    setlocale(0, "rus");
    unsigned int Nom[] = { 10, 20, 50, 100, 200, 500 };
    std::vector<unsigned int> Nominals(Nom, Nom + sizeof(Nom)/sizeof(Nom[0]));
    std::sort(Nominals.begin(), Nominals.end());
 
    unsigned int n;
    std::cout << "Введите сумму: ";
    std::cin >> n;
 
    unsigned int MinNominal = *(std::min_element(Nominals.begin(), Nominals.end()));
    unsigned int bonds = 0;
    std::vector<unsigned int>::reverse_iterator NomIter = Nominals.rbegin();
    while ((n >= MinNominal) && (NomIter != Nominals.rend()))
    {
        unsigned int thisNomBonds = n / *NomIter;
        if (thisNomBonds > 0)
            std::cout << "Купюр по " << *NomIter << ": " << thisNomBonds << '\n';
        bonds += thisNomBonds;
        n %= *NomIter;
        ++NomIter;
    }
 
    std::cout << "Число купюр: " << ((n > 0) ? -1 : bonds) << std::endl;
    system("pause");
}
 
Текущее время: 01:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru