Yurevich1291
?>

Вpascalabc.net. задана сумма денег в купюрах n. провести размен монетами, если в кассе есть n1 - штук по рублю, n2-штук по 2 рубля, n5-штук по 5 рублей, n10 - штук по 10 рублей

Информатика

Ответы

ermisyareg436
"Жадный" алгоритм

// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var k:=Arr(1,2,5,10); // номиналы монет
  var m:=ReadArrInteger('Кол-во монет по '+k.JoinIntoString+' руб:',4);
  var n:=ReadInteger('Сумма в купюрах, руб:');
  if m.Zip(k,(p,q)->p*q).Sum<n then begin // нехватка монет
    Writeln('Размен невозможен'); exit
    end;
  var s:=''; // для результатов
  for var i:=k.Length-1 downto 0 do
    if (n>=k[i]) and (m[i]>0) then begin // номинал участвует
      var t:=min(n div k[i],m[i]); // кол-во монет
      n:=n-k[i]*t; // остаток
      if s.Length>0 then s+=', ';
      s+=t+' по '+k[i]+' руб.';
      end;
  if n<>0 then Writeln('Размен невозможен')
  else Writeln(s)
end.

Примеры
Кол-во монет по 1 2 5 10 руб: 350 215 86 130
Сумма в купюрах, руб: 1526
130 по 10 руб., 45 по 5 руб., 1 по 1 руб.

Кол-во монет по 1 2 5 10 руб: 500 146 0 38
Сумма в купюрах, руб: 432
38 по 10 руб., 26 по 2 руб.

Кол-во монет по 1 2 5 10 руб: 10 20 30 40
Сумма в купюрах, руб: 25000
Размен невозможен
vasearu
Хватит плодить однотипные вопросы. ответ уже был дан в предыдущей теме.
#include <iostream>
#include <Windows.h>

int main()
{
    int v;
    double S, t, t1, tmpT,tmpT1,b,tmpT3;

    std::cout << "V - km\h: ";
    std::cin >> v;
    std::cout << "\nS - km: ";
    std::cin >> S;
    std::cout << "\nT - hour: ";
    std::cin >> t;
    std::cout << "\nT1 - minut: ";
    std::cin >> t1;
    tmpT = S / v;
    t -= tmpT;
    tmpT3 = t - tmpT;
    if (tmpT3 < t)
    {
        std::cout << "edem bez ostanovok" << std::endl;
        system("pause");
        exit(1);
    }

    tmpT1 = (t * 60) / t1;
    b = (double)(int)tmpT1;
    std::cout << "kol ostanovok: " << b << std::endl;
    system("pause");
}
Kushchenko-Monashev

Я уже устаю писать фразу: " уточняйте на каком языке программирования нужно написать", если же Вы этого не делаете, то Вам будет хуже, потому что напишут не на том, на котором Вам нужно, а на том котором удобно человеку. Вот к примеру мне удобно написать на С++, по этому напишу на нём. Алгоритм везде будет тот же.

int a,b,c;

double sr;

cin << a;

cin << b;

cin << c;

sr = (a+b+c)/3

if(a>sr){

cout << "Первое число больше за среднее арифметическое";

}

if(b>sr){

cout << "Второе число больше за среднее арифметическое";

}

if(c>sr){

cout << "Третье число больше за среднее арифметическое";

}

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Вpascalabc.net. задана сумма денег в купюрах n. провести размен монетами, если в кассе есть n1 - штук по рублю, n2-штук по 2 рубля, n5-штук по 5 рублей, n10 - штук по 10 рублей
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

osipovasalex5316
svetarakityanskaya
Григорьевич915
sandovo590
Дмитрий-Олейникова
verkop9
vettime625
Ofelya1308
tcmir
skvorec3424
vallzh8328
Валентинович133
RozaAsadullina
anovikovsr
menesmir