Console Application C# Два числа называются дружественными, если каждое из них равно сумме всех делителей второго не считая самого этого числа. Найдите все пары дружественных чисел на отрезке [a;b]."
Каждый год около тысячи команд со всей Японии вступают в ожесточенное сражение на турнире роботов. В этом состязании вы не увидите бензопил, факелов и электрических разрядов — словом, ничего из того, что приходит в голову, когда вы слышите фразу «битва роботов».
Речь идет не просто о битве — это робо-сумо, которое ценят за особые качества: за элегантность, простоту и возможность проявить интеллект в стратегии. Соревнование проходит на круглом металлическом ринге диаметром всего 1,5 м, по периметру которого нарисована белая линия шириной 5 см. Робот, пересекший эту границу, считается проигравшим. И в этой кажущейся простоте кроется бездна возможностей.
Расскажем, как «битва роботов» стала интеллектуальным соревнованием для программистов, и дадим подробную инструкцию по сборке робо-сумоиста.Глаза робота — датчики инфракрасного излучения. Степень ИК-отражения измеряется светочувствительным элементом. Белый цвет границы выбран не случайно — он отражает больше света, чем черная поверхность ринга.
Робот оснащен несколькими ИК-датчиками, ответственными за «поиск» границы. Передние датчики, как правило контролировать скорость движения — боец не должен покинуть поле из-за чрезмерной ретивости. Тыловые датчики «следят» за приближением к границе ринга: получив от них отклик, робот меняет направление движения.
А измеряя время, необходимое для отражения лучей, можно понять местоположение противника. Многие роботы (но не все) меняют направление, учитывая этот параметр.Помимо перечисленных преимуществ, у ИК-датчиков есть и недостаток — поле зрения остается узким, за счет чего появляется множество слепых зон, использование которых в атаке — основная стратегия высокоманевренных роботов.
Однако это работает только с автономными роботами. Когда самостоятельный робо-сумоист сталкивается с радиоуправляемым противником, он не может использовать стратегию атаки слепых зон, так как оператор видит больше, чем робот.
Вместо того чтобы атаковать слепые точки, автоботы применяют стратегию атаки с углов. В целом же у борца не так много доступных маневров: поворот, толкание, торможение и остановка.
Однако чтобы запутать противника некоторые бойцы выбрасывают белые флаги с одной или с двух сторон корпуса. Заманивая противника к флагу, они атакуют его уязвимую сторону и выталкивают с ринга.
Конечно, появились и защиты от такой атаки. Появление флажков слева и справа означает, что корпус робота находится в центре. Если же робот выбросил флаг с одной стороны, то его корпус находится в противоположном месте.
Некоторые боты могут не только заманивать противника, но и скрываться от его датчиков. Для этого их красят в черный цвет или добавляют отражающие покрытия.
procedure oddDec(var a,b:integer); //подпрограмме переданы аргументы a и b //процедура для вычитания в нечётном элементе begin; a:=a-b; end;
procedure NotoddInc(var a,b:integer); //подпрограмме переданы аргументы a и b //процедура для сложения в чётном элементе begin; a:=a+b; end;
begin randomize; readln(a); //ввод a readln(b); //ввод b writeln('Array:'); for i:=1 to 10 do //весь массив begin; ar[i]:=random(-20,80); //случайные числа от -20 до 80 включительно write(ar[i]:4); //вывод if odd(i) then oddDec(ar[i],b) else NotoddInc(ar[i],a); {если нечётное, то первая процедура, иначе вторая. Обращаю внимания на то, что элементы меняются сразу после вывода} end; writeln; writeln('Final array:'); //вывод получившегося массива for i:=1 to 10 do write(ar[i]:4); end.
Пример ввода: 20 10 Пример вывода: Array: 10 16 0 60 23 4 22 -20 4 55 Final array: 0 36 -10 80 13 24 12 0 -6 75
Каждый год около тысячи команд со всей Японии вступают в ожесточенное сражение на турнире роботов. В этом состязании вы не увидите бензопил, факелов и электрических разрядов — словом, ничего из того, что приходит в голову, когда вы слышите фразу «битва роботов».
Речь идет не просто о битве — это робо-сумо, которое ценят за особые качества: за элегантность, простоту и возможность проявить интеллект в стратегии. Соревнование проходит на круглом металлическом ринге диаметром всего 1,5 м, по периметру которого нарисована белая линия шириной 5 см. Робот, пересекший эту границу, считается проигравшим. И в этой кажущейся простоте кроется бездна возможностей.
Расскажем, как «битва роботов» стала интеллектуальным соревнованием для программистов, и дадим подробную инструкцию по сборке робо-сумоиста.Глаза робота — датчики инфракрасного излучения. Степень ИК-отражения измеряется светочувствительным элементом. Белый цвет границы выбран не случайно — он отражает больше света, чем черная поверхность ринга.
Робот оснащен несколькими ИК-датчиками, ответственными за «поиск» границы. Передние датчики, как правило контролировать скорость движения — боец не должен покинуть поле из-за чрезмерной ретивости. Тыловые датчики «следят» за приближением к границе ринга: получив от них отклик, робот меняет направление движения.
А измеряя время, необходимое для отражения лучей, можно понять местоположение противника. Многие роботы (но не все) меняют направление, учитывая этот параметр.Помимо перечисленных преимуществ, у ИК-датчиков есть и недостаток — поле зрения остается узким, за счет чего появляется множество слепых зон, использование которых в атаке — основная стратегия высокоманевренных роботов.
Однако это работает только с автономными роботами. Когда самостоятельный робо-сумоист сталкивается с радиоуправляемым противником, он не может использовать стратегию атаки слепых зон, так как оператор видит больше, чем робот.
Вместо того чтобы атаковать слепые точки, автоботы применяют стратегию атаки с углов. В целом же у борца не так много доступных маневров: поворот, толкание, торможение и остановка.
Однако чтобы запутать противника некоторые бойцы выбрасывают белые флаги с одной или с двух сторон корпуса. Заманивая противника к флагу, они атакуют его уязвимую сторону и выталкивают с ринга.
Конечно, появились и защиты от такой атаки. Появление флажков слева и справа означает, что корпус робота находится в центре. Если же робот выбросил флаг с одной стороны, то его корпус находится в противоположном месте.
Некоторые боты могут не только заманивать противника, но и скрываться от его датчиков. Для этого их красят в черный цвет или добавляют отражающие покрытия.
var
i,a,b:integer;
ar:array[1..10] of integer;
procedure oddDec(var a,b:integer); //подпрограмме переданы аргументы a и b
//процедура для вычитания в нечётном элементе
begin;
a:=a-b;
end;
procedure NotoddInc(var a,b:integer); //подпрограмме переданы аргументы a и b
//процедура для сложения в чётном элементе
begin;
a:=a+b;
end;
begin
randomize;
readln(a); //ввод a
readln(b); //ввод b
writeln('Array:');
for i:=1 to 10 do //весь массив
begin;
ar[i]:=random(-20,80); //случайные числа от -20 до 80 включительно
write(ar[i]:4); //вывод
if odd(i) then oddDec(ar[i],b) else NotoddInc(ar[i],a);
{если нечётное, то первая процедура, иначе вторая. Обращаю внимания на то, что элементы меняются сразу после вывода}
end;
writeln;
writeln('Final array:'); //вывод получившегося массива
for i:=1 to 10 do
write(ar[i]:4);
end.
Пример ввода:
20
10
Пример вывода:
Array:
10 16 0 60 23 4 22 -20 4 55
Final array:
0 36 -10 80 13 24 12 0 -6 75