Помогите пожалуйста с решением:
1)Заданы размеры прямоугольника (вводятся 2 целых числа), Найти и напечатать покрытие этого прямоугольника наименьшим колличеством квадратов(список длинн сторон)
Задается целое число(вводится с клавиатуры), вывести по одной цифре(с повторами), из которых состоит это число
1 - такая реализация пойдет ?
procedure kw (x,y:integer);
begin
if x=y then writeln (x,'x',x) else
begin
if x<y then begin
writeln (x,'x',x); kw (x,y-x);
end else begin
writeln (y,'x',y); kw (x-y,y);
end;
end;
end;
Можно по подробнее, дело в том что я в паскале никогда не работал, пишу на php,vb. С синтаксисом слабо знаком, попросили помочь с задачами, запустить эту так и не смог. Можно полноценно работающую программу, с вводом сторон с клавиатуры??
var x,y:integer;
begin
write ('X='); readln (x);
write ('Y='); readln (y);
kw(x,y);
end.
угу, пасиб, работает, а если добавить условие - заполнить квадратами одинакого размера? )))
а реализацию на паскале можно?? )
ну я серьезно, надо решить задачу, помогите плизз, хотяб формулу математическую... лучше конечно пример
Пока ничего серьезного с твоей стороны не вижу.
ПОМОЧЬ можно только человеку, который сам что-то делает.
Можно, конечно, что-то сделать ВМЕСТО человека, но вряд ли это следует считать помощью.
Да, но ведь квадраты не обезательно должны быть целыми числами, ну например,
прямоугольник 2,6 на 9,1
Квадраты понятное дело будут 1,3 если посмотреть внимательно... но прямоугольник может быть сколь угодно большим, ну например 13654,4564327 на 167654,4675632
И что тогда...
Но все равно, всем спасибо за ответы.
ты бы хоть читал что пишешь ...
мда, пардон.... просто изначально задача была с целыми числами, и разных размеров квадраты...
А потом дали похожую на ту...
В общем, Задается прямоугольник(вводятся два любых положительных числа), надо заполнить площадь прямоугольника максимально большими одинаковыми квадратами. Найти длинну квадрата, и колличество для заполнения.
Все равно перебором, примерно так:
....
e:=false; n:=0;
repeat
inc (n);
if frac(y/(x/n))<0.0001 {сколько надо} then
begin
writeln (n, ' x ',round(y/(x/n)),'(', (x/n):0:5,')'); e:=true;
end;
until e;