Решить в паскале: в деревне квашино вместе n лап. сколько в этой деревне котят и утят? если имеет много решений, то вывести все, если решений нет - вывести сообщение (такого не может быть)
Я не знаю Паскаль(программирую на C++ чуть больше 3 лет), но идея следующая. Если n - нечетно, то выводим, что такого быть не может. Иначе делим n пополам и получаем количество только утят(один из вариантов: все утята). А дальше, пока можем, заменяем 2 утят на 1 кота и выводим данное решение. Если непонятно, то могу добавить программу, но на C++(насколько знаю, они не сильно различаются).
Вот тебе простой вариант ришение задачи (коментар=пояснение)
PascalВыделить код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 program prg; uses crt; var rez,chislo,min,max:integer; begin Write('Enter number = ');readln(chislo); //zanosim 1 chislo max:=chislo; //v max ta min min:=chislo; //chtobu potom mu soukb sravnivat s drugimi chislamu while (chislo<>0) do //zapuskaem zikl poka mu ne napishem 0 begin if (chislo>max)then max:=chislo; //sravnivaem s max if (chislo<min) then min:=chislo; //sravnivaem s min readln(chislo); //snova pihem chislo end; rez:=(max-min); //nahodim raznizy writeln('max(',max,') - min(',min,') = ',rez); //otvet end.
Const n=12; m=10; var a:array[1..n,1..m] of integer; i,j,k:integer; begin k:=0; for j:=1 to m do for i:=n downto 1 do begin k:=k+1; a[i,j]:=k; end; for i:=1 to n do begin for j:=1 to m do write(a[i,j]:4); writeln; end; end.
Иначе делим n пополам и получаем количество только утят(один из вариантов: все утята). А дальше, пока можем, заменяем 2 утят на 1 кота и выводим данное решение. Если непонятно, то могу добавить программу, но на C++(насколько знаю, они не сильно различаются).