М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
ali0002
ali0002
06.03.2020 01:24 •  Информатика

Вконструкторском бюро проектируют планетоход для исследования поверхности планеты марс. исследования должны проводиться на прямоугольной области планеты без препятствий внутри неё. эта область разделена на единичные квадраты и имеет размеры m×n, где m – длина прямоугольника, а n – его ширина. планируется, что планетоход должен работать по следующей программе. вначале он садится в северо-западном углу заданной области в направлении на восток. после этого планетоход начинает обход и исследование выбранной области, двигаясь по спирали по часовой стрелке. при этом спираль постепенно «закручивается» вовнутрь, захватывая постепенно все клетки прямоугольника. исследование заканчивается, когда пройдены все клетки. требуется написать программу, которая для заданных m и n определяет количество поворотов, которые должен выполнить планетоход в процессе исследования области. описание входных данных входные данные вводятся из файла input.txt. в единственной строке этого файла через пробел записаны два целых числа m и n, размеры исследуемого прямоугольного участка. описание выходных данных. выходные данные выводятся в файл output.txt. в единственной строке этого файла необходимо вывести одно целое число – количество поворотов, которое выполнит планетоход при исследовании заданной области на поверхности марса. пример входных и выходных данных входные данные: 3 4 выходные данные: 5

👇
Ответ:
klochko2012p04hpi
klochko2012p04hpi
06.03.2020
Рассматривая различные прямоугольники и подсчитывая в них число поворотов P, можно прийти к следующему алгоритму. Для любого натурального k получаем:
P=\begin {cases} 0, \ min(M,N)=1 
\\4k-2, \ min(M,N)=2k, \, M=N, \, k \in \mathbb N \\ 4k-1, \ 
min(M,N)=2k, \, M \neq N, \, k \in \mathbb N \\ 4k, \ min(M,N)=2k+1, \,
 M=N, \, k \in \mathbb N \\ 4k+1, \ min(M,N)=2k+1, \, M \neq N, \, k 
\in \mathbb N \\ \end {cases}

var
  M, N, k, mn, P: integer;
  f: Text;

begin
  Assign(f, 'input.txt');
  Reset(f);
  Readln(f, M, N);
  Close(f);
  if M < N then mn := M else mn := N;
  if mn = 1 then P := 0
  else begin
    k := mn div 2;
    if mn mod 2 = 0 then
      if M = N then P := 4 * k - 2
      else P := 4 * k - 1
    else
    if M = N then P := 4 * k
    else P := 4 * k + 1
  end;
  Assign(f, 'output.txt');
  Rewrite(f);
  Writeln(f, P);
  Close(f)
end.
4,8(34 оценок)
Открыть все ответы
Ответ:
kofer
kofer
06.03.2020

1.

#include <iostream>

using namespace std;

int main()

{

int a=4, b = 6;

cout<<"Сума чисел a("<<a<<") та b("<<b<<") = " << a+b;

return 0;

}

2.

#include <iostream>

using namespace std;

int main()

{

float a, p;

cout<<"Введіть сторону квадрата: ";

cin>>a;

p = 4 * a;

cout<<"Периметр квадрата зі стороною "<< a << " дорівнює " << p;

return 0;

}

3.

#include <iostream>

using namespace std;

int main()

{

int a,b, c, d;

float result;

cout<<"Введіть перше число: ";

cin>>a;

cout<<"Введіть друге число: ";

cin>>b;

cout<<"Введіть третє число: ";

cin>>c;

cout<<"Введіть четверте число: ";

cin>>d;

result = (a+b+c+d)/4;

cout<<"Середнє арифметичне 4 чисел: "<< result;

return 0;

}

4,7(24 оценок)
Ответ:
AnyRam
AnyRam
06.03.2020

var i,n,x,summa,count:integer;

nechet:boolean;

begin

Writeln('Vvedite n: ');

readln(n);//получаем n

summa:=0;

count:=0;

i:=1;

if(n mod 2 = 1) then nechet := true else nechet := false; //проверяем четное число или нет

while i<n do begin//пока число меньше n

if(nechet) then//если число нечентное

begin

summa:=summa+i*i*i;//прибавляем к сумме куб этого числа

end

else//если число четное

begin

summa:=summa+i*i;//прибавляем квадрат числа

end;

i:=i+1;//прибавляем число на 1

end;

writeln(' summa: ', summa);//выводим сумму

readln();

end.

4,6(27 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ