15 / 15 / 2
Регистрация: 25.03.2010
Сообщений: 349
1

Определите, какой набор купюр выдаст банкомат

28.04.2010, 21:43. Показов 2931. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Вот задание:
Банкомат выдает деньги купюрами в 5000 1000 5000 100 50 и 10 рублей по следующему принципу: сначала выдается максимальное количество купюр по 5000, затем максимальное кол-во купюр по 1000 и так далее. Вводится натуральное число n кратное 10 - кол-во рублей, определите, какой набор купюр выдаст банкомат. Ответ запишите так, как указано в примере:
8210
= 5000+3*1000+2*100+10

Вот мой код:
Pascal
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
40
41
42
43
44
45
46
47
48
Var
  d, t: Integer;
Begin
  ReadLn(d);
  t := 0;
  While (d Mod 5000 > 0) Do
    Begin
      d := d Mod 5000;
      Inc(t);
    End;
  Write('= ', t, '*5000');
  t := 0;
  While (d Mod 1000 > 0) Do
    begin
      d := d Mod 1000;
      Inc(t);
    End;
  Write('+', t, '*1000');
  t := 0;
  While (d Mod 500 > 0) Do
    begin
      d := d Mod 500;
      Inc(t);
    End;
  Write('+', t, '*500');
  t := 0;
  While (d Mod 100 > 0) Do
    Begin
      d := d Mod 100;
      Inc(t);
    End;
  Write('+', t, '*100');
  t := 0;
  While (d mod 50 > 0) Do
    Begin
      d := d Mod 50;
      Inc(t);
    End;
  Write('+', t, '*50');
  t := 0;
  While (d Mod 10 > 0) Do
    begin
      d := d Mod 10;
      Inc(t);
    End;
  Write('+', t, '*10');
  Readln;
End.

При запуске, программа просто зависает и все, и я не пойму, в чем ошибка! Помогите, пожалуйста!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2010, 21:43
Ответы с готовыми решениями:

При вводе сумы вывести сколько каких купюр банкомат выдаст
Помогите плиз! Не могу понять как это реализовать! Дали задание, но я не понимаю :( "задание -...

Написать функцию atm, которая определяет наименьшее количество купюр(банкомат)
Банкомат содержит достаточное количество банкнот номиналом 50, 100, 200, 500, 1000, 2000, 5000...

Какой результат выдаст данный пример с числами Фибоначчи
Всем привет. Очень прошу форумщиков написать, какой результат выдаст вот такой пример: def fib(n):...

как рассчитать количество купюр при неполном ряду номиналов купюр?
При полном массиве номинала (до единиц) - понятно. Куча примеров на форуме. А что делать, если...

6
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
28.04.2010, 21:45 2
Да в принципе нужно не mod, а div. Вам же целые купюры нужны, а не их остатки.
1
15 / 15 / 2
Регистрация: 25.03.2010
Сообщений: 349
28.04.2010, 21:49  [ТС] 3
Ща попробую!

Добавлено через 1 минуту
Puporev, спасибо, все работает!
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
28.04.2010, 22:03 4
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
uses crt;
var s:longint;
    k:integer;
begin
clrscr;
repeat
write('Сумма(натуральное число, кратное 10)=');
readln(s);
until (s>0)and(s mod 10=0);
k:=s div 5000;
s:=s mod 5000;
k:=k+s div 1000;
s:=s mod 1000;
k:=k+s div 500;
s:=s mod 500;
k:=k+s div 100;
s:=s mod 100;
k:=k+s div 50;
s:=s mod 50;
k:=k+s div 10;
write('k=',k);
readln
end.
1
15 / 15 / 2
Регистрация: 25.03.2010
Сообщений: 349
28.04.2010, 22:10  [ТС] 5
Цитата Сообщение от Puporev Посмотреть сообщение
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
uses crt;
var s:longint;
    k:integer;
begin
clrscr;
repeat
write('Сумма(натуральное число, кратное 10)=');
readln(s);
until (s>0)and(s mod 10=0);
k:=s div 5000;
s:=s mod 5000;
k:=k+s div 1000;
s:=s mod 1000;
k:=k+s div 500;
s:=s mod 500;
k:=k+s div 100;
s:=s mod 100;
k:=k+s div 50;
s:=s mod 50;
k:=k+s div 10;
write('k=',k);
readln
end.
тока это не работает. Если я ввожу число 8210, то мне выдает: k=7
0
4342 / 1474 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
28.04.2010, 22:14 6
Baz1995, K - общее количество купюр.
А вообще можно сделать более общий случай:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
uses crt;
const N = 6;
value: array[1..N] of integer = (5000, 1000, 500, 100, 50, 10);
 
var i,S:integer;
begin
 clrscr;
 write('S -> ');
 readln(S);
 for i:=1 to N do
 begin
  writeln(value[i],' руб. - ',S div value[i]):
  S := S mod value[i];
 end;
 readln;
end.
1
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
29.04.2010, 05:18 7
8210=1*5000+3*1000+2*100+1*10=7
1
29.04.2010, 05:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.04.2010, 05:18
Помогаю со студенческими работами здесь

Сколько купюр разного достоинства отдаст покупатель, если он начинает платить с самых крупных купюр?
Покупатель должен заплатить в кассу 5 руб. У него имеются купюры по 1, 5, 10, 50, 100, 500, 1000 и...

Программа должна выдавать сколько купюр каждого номинала потребуется для размена, при условии, что количество купюр каждого вида ограничено
Здравствуйте, у меня в задаче пользователь вводит количество денег в грн, имеется массив денег,...

А у Вас какой набор программ
Всем Добрый день.Такой во общем опрос. Какой у Вас набор программ для работы Системным...

Какой набор OpenGL библиотек самодостаточен?
В заголовке описана суть вопроса. Какой набор библиотек надо иметь, чтобы не нуждаться в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru