Где я опять напортачил, подскажите пожалуйста.
var
x,y,z:integer;
begin
for x:=0 to 9 do
for y:=0 to 9 do
for z:=0 to 9 do
writeln(x,' ',y,' ',z);
begin
if (1*x+10*y+100*z=1000) and (x+y+z=40)
then writeln(x,' ',y,' ',z);
end;
end.
Другие языки программирования и технологии
Можно ли 1000 рублей набрать купюрами по 1, 10, 100 рублей, если общее количество этих купюр равно 40?
Нет, нельзя. Если не больше 40, то купюр может быть только 10, 19, 28 или 37.
И три цикла не нужны - достаточно двух:
for x := 0 to 40 do
for y := 0 to 40 - x do
if x + 10 * y + 100 * (40 - x - y) = 1000 then writeln(x, ' ', y, ' ', 40 - x - y)
И три цикла не нужны - достаточно двух:
for x := 0 to 40 do
for y := 0 to 40 - x do
if x + 10 * y + 100 * (40 - x - y) = 1000 then writeln(x, ' ', y, ' ', 40 - x - y)
Уж тяни в циклах до 40. Почему только до 9?
Алмат Искаков
Ну так всё равно ничего не поменялось ((
получаем, что нам нужно решить систему уравнений в целых числах
x+10y+100z=1000
x+y+z=40
9y+99z=960
3y+33z=320
y=(320-33z)/3
y=320/3-11z
очевидно, что любое целое z умножая на целое 11 невозможно привести к дроби a/3 -> при любом целом z - y целым не получается -> система уравнений в целых числах решений не имеет
PS: зачем программистам математика?
x+10y+100z=1000
x+y+z=40
9y+99z=960
3y+33z=320
y=(320-33z)/3
y=320/3-11z
очевидно, что любое целое z умножая на целое 11 невозможно привести к дроби a/3 -> при любом целом z - y целым не получается -> система уравнений в целых числах решений не имеет
PS: зачем программистам математика?
Нельзя так набрать
var
x,y,z,flag:integer;
begin
flag:=0;
for x:=0 to 40 do
for y:=0 to 40 do
for z:=0 to 10 do
if (1*x+10*y+100*z=1000) and (x+y+z=40)
then begin
writeln(x,' ',y,' ',z);
flag:=1;
end;
if (flag=0) then writeln('Нельзя набрать 1000 рублей купюрами по 1, 10, 100 рублей так, чтобы общее количество купюр было равно 40');
end.
var
x,y,z,flag:integer;
begin
flag:=0;
for x:=0 to 40 do
for y:=0 to 40 do
for z:=0 to 10 do
if (1*x+10*y+100*z=1000) and (x+y+z=40)
then begin
writeln(x,' ',y,' ',z);
flag:=1;
end;
if (flag=0) then writeln('Нельзя набрать 1000 рублей купюрами по 1, 10, 100 рублей так, чтобы общее количество купюр было равно 40');
end.
Может цикл должен быть больше десяти итераций?
10 купюр по 100 = 1000 рублей
Можно 8 купюр по 100, а 20 по 10 рублей.
Так что если не требуется ровно 40 купюр, то можно. И ещё останется. Да и если требуется ровно 40 - тоже можно.
Можно 8 купюр по 100, а 20 по 10 рублей.
Так что если не требуется ровно 40 купюр, то можно. И ещё останется. Да и если требуется ровно 40 - тоже можно.
а в паскале разве не надо после каждого for ставить begin? мб я и ошибаюсь, давно на нём не писал
Artem Dmitriev
Не надо.
x+10y+100(40-x-y)=1000
x+10y+4000-100x-100y=1000
4000-99x-99y=1000
99(x+y)=3000
x+y=3000:99
т. е. не получится поскольку не делится в целых числах
x+10y+4000-100x-100y=1000
4000-99x-99y=1000
99(x+y)=3000
x+y=3000:99
т. е. не получится поскольку не делится в целых числах
Похожие вопросы
- Разработайте программу для решения следующей задачи: «Купили 100 голов скота на 100 рублей. Бык стоит 10 рублей, корова
- Генерация уникальных чисел от 1 до 100 на С++
- есть сайт, есть 1000 рублей. как раскрутить?
- Как удалить вирус Trojan.MBRlock.19 заблокировавший windows? Требует отослать 1000 рублей на номер 89622198680
- Язык Си. Читаю K&R (книга автора языка с примерами). Упражнение 1.10
- Перебрать все числа с цифрами 1 и 2 до n-ного количества цифр.
- СРОЧНО ПАСКАЛЬ задан одномерный массив с (1..10), дать ответ: каких элементов больше: положительных или отрицательных
- составьте программу ввода элементов массива а 1 10
- При пользовании ПК, резко на мониторе появляется синий экран с отчетом цифр от 1 до 100 и комп перезагружается. Что это?
- Программа по нахождению простых чисел от 1 до 100