Помогите, пожалуйста! Программа нужна на basic
Желательно оформление:
10 REM..
20 INPUT "INPUT....
Другие языки программирования и технологии
Любая сумма денег более 7 руб ( целые числа), рахменять на монеты по 5 руб и 3 руб.
Я бы сделал немножко по-другому: определил бы остаток от деления на 5, а затем:
1 Если остаток=0,то вся сумма - 5-ками
2 Если остаток=1,то две 3-ки (5+1), а остальные - 5-ками
3 Если остаток=2,то четыре 3-ки (10+2), а остальные - 5-ками
4 Если остаток=3,то одна 3-ка (0+3), а остальные - 5-ками
5 Если остаток=4,то три 3-ки (5+4), а остальные - 5-ками
Без номеров:
INPUT S
O=S-INT(S/5)*5
IF O=0 THEN N3=0
IF O=1 THEN N3=2
IF O=2 THEN N3=4
IF O=3 THEN N3=1
IF O=4 THEN N3=3
N5=(S-3*N3)/5
PRINT N3, " ПО 3 РУБЛЯ, ", N5, " ПО 5 РУБЛЕЙ"
Только не перепутайте: в IF слева от знака равенства стоит буква O (от слова Остаток), а не ноль. Можно было бы ещё ELSE добавить, но мне лениво вспоминать BASIC. И так работать будет.
1 Если остаток=0,то вся сумма - 5-ками
2 Если остаток=1,то две 3-ки (5+1), а остальные - 5-ками
3 Если остаток=2,то четыре 3-ки (10+2), а остальные - 5-ками
4 Если остаток=3,то одна 3-ка (0+3), а остальные - 5-ками
5 Если остаток=4,то три 3-ки (5+4), а остальные - 5-ками
Без номеров:
INPUT S
O=S-INT(S/5)*5
IF O=0 THEN N3=0
IF O=1 THEN N3=2
IF O=2 THEN N3=4
IF O=3 THEN N3=1
IF O=4 THEN N3=3
N5=(S-3*N3)/5
PRINT N3, " ПО 3 РУБЛЯ, ", N5, " ПО 5 РУБЛЕЙ"
Только не перепутайте: в IF слева от знака равенства стоит буква O (от слова Остаток), а не ноль. Можно было бы ещё ELSE добавить, но мне лениво вспоминать BASIC. И так работать будет.
Жадный алгоритм. Задача о размене денег | Форум
programmersforum.ru›showthread.php?t=117247
17 октября 2010 Например. имеются купюры номиналами: 1руб 5руб 10 руб 50 руб 100 руб 500 руб 1000 руб 5000 руб. нужно разменять сумму например 5190руб.
17 октября 2010 То, что сумма целое число - может и не помочь! Ладно. не хотите делать проверку - не делайте.
programmersforum.ru›showthread.php?t=117247
17 октября 2010 Например. имеются купюры номиналами: 1руб 5руб 10 руб 50 руб 100 руб 500 руб 1000 руб 5000 руб. нужно разменять сумму например 5190руб.
17 октября 2010 То, что сумма целое число - может и не помочь! Ладно. не хотите делать проверку - не делайте.
Васика не помню. Алгоритм такой: вычитаем по 3 пока на остаток от деления на 5 нацело не станет делиться. остаток пятерками добиваем.
Вот еще вариант без остатков деления
Но на паскале. Захочешь - разберешься.
Но оптимально как у Сухотина - самое шустрое будет и от суммы не зависеть.
write('Сумма к размену, руб ');
readln(s);
i:=1;j:=0;
while (s-(i*5+j*3))<>0 do
begin
if (s-(i*5+j*3))<3 then
begin
dec(i) ;
inc(j);
end
else
if (s-(i*5+j*3))>4 then inc(i) else inc(j);
end;
writeln('5 руб - ',i,'шт');
writeln('3 руб - ',j,'шт');
Но на паскале. Захочешь - разберешься.
Но оптимально как у Сухотина - самое шустрое будет и от суммы не зависеть.
write('Сумма к размену, руб ');
readln(s);
i:=1;j:=0;
while (s-(i*5+j*3))<>0 do
begin
if (s-(i*5+j*3))<3 then
begin
dec(i) ;
inc(j);
end
else
if (s-(i*5+j*3))>4 then inc(i) else inc(j);
end;
writeln('5 руб - ',i,'шт');
writeln('3 руб - ',j,'шт');
круть поцык сказал
сумма к размену руб readln(s) 9050)( super
write('Сумма к размену, руб ');
readln(s);
i:=1;j:=0;
while (s-(i*5+j*3))<>0 do
begin
if (s-(i*5+j*3))<3 then
begin
dec(i) ;
inc(j);
end
else
if (s-(i*5+j*3))>4 then inc(i) else inc(j);
end;
writeln('5 руб - ',i,'шт');
writeln('3 руб - ',j,'шт');
readln(s);
i:=1;j:=0;
while (s-(i*5+j*3))<>0 do
begin
if (s-(i*5+j*3))<3 then
begin
dec(i) ;
inc(j);
end
else
if (s-(i*5+j*3))>4 then inc(i) else inc(j);
end;
writeln('5 руб - ',i,'шт');
writeln('3 руб - ',j,'шт');
Константин Мидин
это Паскаль?)
Похожие вопросы
- С клавиатуры вводится целое число от 1 до 1000 обозначающую сумму в рублях. Программа должна печатать эту сумму прописью
- Из массива целых чисел составить три других, при этом в первом числа кратные 5, во втором 7, а в третьем остальные числа
- Решите задачу! Дано целое число n найдите сумму 1^n +2^n-1 + 3^n-2 ...+n^1
- Проверте программу, которая вычисляет сумму целых чисел от а до 500 (значение a вводится с клавиатуры). c++
- помогите пожалуйста!!3.Напишите процедуру Input(A) для заполнения массива целых чисел A размером 10 x 10: 0 0 0 ...0 0
- Вам даны все целые числа от 1 до N + 1, кроме одного. Найдите отсутствующее число.
- Вычислить и вывести на экран 100 целых чисел их сумму, максимальное
- Даны 3 целых числа. Возвести в квадрат отрицательные числа и в третью степень - положительные (число 0 не изменять)
- Дан файл целых чисел. Создать два новых файла, первый из которых содержит положительные числа из исходного файла...
- Дан файл целых чисел.Найти сумму компонент с четным значением и записать в новый файл те из них,значения которых превыша
5 CLS
10 REM
20 INPUT "INPUT N"; N
30 FOR T=o TO N
40 FOR P=0 TO N
50 IF 3*T+5*P=N tHEN PRINT "3 RUB"; T, "5 RUB" ; P
60 NEXT P
70 NEXT T
вот и все