![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Markson |
![]() ![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот задачка, как зделать в масивах я примерно знаю, но мне нада её решыть с помощью множыств ( на украинском "множин"), с етим методом я никак немогу разобратся. На форуме вродебы ничего похожего ненаходил.
В порядке спадания напечатать все целые числа из диапазона 1..100 которые можно подати в виде sqr(n)+2*sqr(k) , где n,k целые числа. |
Ozzя |
![]()
Сообщение
#2
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
var
i,n,k : Integer;
a : Set of Byte;
begin
a:=[];
readln(n,k);
for i:=1 to 100 do
begin
if i=sqr(n)+2*sqr(k) then
include(a,i);
end;
for i:=1 to 100 do
begin
if i in a then
Write(i,' ');
end;
readln;
end.
Не знаю что такое "спадания " сам реализуешь |
Гость |
![]()
Сообщение
#3
|
Гость ![]() |
Не совсем так.. Выражение "числа можно представить в виде" означет, что нужно найти все n и k, удовлетворяющие условию. Так что как-то примерно так:
var
i,n,k : Integer;
a : Set of Byte;
begin
a:=[];
for i:=1 to 100 do for n:=0 to 100 do for k:=1 to 100 do
if i=sqr(n)+2*sqr(k) then include(a,i);
for i:=100 downto 100 do if i in a then Write(i,' ');
readln;
end.
Не знаю что такое "спадания " сам реализуешь Думаю, это значит в порядке убывания (сделал) |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Непонятно только, зачем делать заведомо лишнюю работу: как только n или k превысит 10, сумма n2+2*k2 превысит 100, так что циклы по N и K можно ограничить 10-ю... А по i вообще убрать:
for n := 0 to 10 do
for k := 1 to 10 do begin
i := n*n + 2*k*k;
if i <= 100 then include(a, i);
end;
for i := 100 downto 1 do if i in a then Write(i: 4);
|
Lapp |
![]()
Сообщение
#5
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Непонятно только, зачем делать заведомо лишнюю работу: как только n или k превысит 10, сумма n2+2*k2 превысит 100, так что циклы по N и K можно ограничить 10-ю... А по i вообще убрать: Совершенно согласен, я явно перестраховался ![]() ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 20.04.2025 10:17 |