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

С++ Шашку — в дамки

На шахматной доске (8×8) стоит одна белая шашка. Сколькими она может пройти в дамки?

(Белая шашка ходит по диагонали. на одну клетку вверх-вправо или вверх-влево. Шашка проходит в дамки, если попадает на верхнюю горизонталь.)

Входные данные

Вводятся два числа от 1 до 8: номер номер столбца (считая слева) и строки (считая снизу), где изначально стоит шашка.

Выходные данные

Вывести одно число — количество путей в дамки.

Примеры

Ввод

Вывод

3 7

2

1 8

1

3 6

4

👇
Ответ:
Wkdj13737
Wkdj13737
09.08.2022

#include <cstdio>

#include <algorithm>

using namespace std;

int a[30][30], n, m;

int main() {

  scanf(" %d %d", &n, &m);

  for(int i = 0; i < n; i++)

     for(int j = 0; j < m; j++)

        scanf(" %d", &a[i][j]);

  for(int i = 1; i < m; i++) a[0][i] += a[0][i - 1];

  for(int i = 1; i < n; i++) a[i][0] += a[i - 1][0];

  for(int i = 1; i < n; i++)

     for(int j = 1; j < m; j++)

        a[i][j] += min(a[i - 1][j], a[i][j - 1]);

  printf("%d", a[n - 1][m - 1]);

  return 0;

}

Объяснение:

4,7(82 оценок)
Ответ:
POMIDOrio
POMIDOrio
09.08.2022

#include <iostream>

using namespace std;

int data[20][20], x, y, minValue = -1;

void calc(int px, int py, int value){

   value += data[px][py];

   int temp = data[px][py];

  if(px == x - 1 && py == y - 1) {

       if(value < minValue || minValue == -1)

           minValue = value;

       return;

  }

  data[px][py] = -1;

   if(px + 1 < x && data[px + 1][py] != -1) calc(px + 1, py, value);

   if(py + 1 < y && data[px][py + 1] != -1) calc(px, py + 1, value);

   

data[px][py] = temp;

}

int main(){

   cin >> x >> y;

   for (int i = 0; i < x; ++i)

       for (int j = 0; j < y; ++j)

          cin >> data[i][j];

 calc(0, 0, 0);

  cout << minValue;  

  return 0;

}

Объяснение:

Я сделал это задание с рекурсии. Функция бесконечно вызывает сама себя и ищет наиболее оптимальный вариант. Фактически это просто подбор, но более сложно реализованный.

P. s. Если Вам ответ, отметьте его как лучший и жмякните на " " . Это мотивирует продолжать давать ответы дальше.

4,4(81 оценок)
Открыть все ответы
Ответ:
Anutazaitseva2002
Anutazaitseva2002
09.08.2022

program Prog;

var i, MinElement: Integer;

arr: array[1..15] of Integer;

begin

{ задаем значение минимального элемента. изначально

оно дожно быть максимально возможным, так как мы будем

все элементы с ним сравнить и вычислять, какой из них наименьший.

для этого после того, как мы нашли элемент меньше чем имеющийся минимум,

то мы этот минимум изменяем на найденное нами число }

MinElement:=High(Integer); { т.к. будем работать с Integer, то максимум будем брать у Integer,

но вообще еще можно присвоить ему значение первого элемента массива и сравнивать потом с ним }

randomize; { это чтоб заполнить рандом. числами }

// запоолнение массива рандомом

for i:=1 to 15 do begin

 arr[i]:=random(100); { для примера числа будут от 0 до 99 }

 { здесь мы как раз сравниваем с имеющимся минимум и меняем его,

 если нашли элемент меньше }

 if arr[i]<MinElement then

  MinElement:=arr[i]

end;

// вывод всего массива

for i:=1 to 15 do

 write(arr[i], ' ');

writeln;

// вывод минимума

writeln('Минимальный элемент: ', MinElement);

end.

4,4(54 оценок)
Ответ:
alinakim3
alinakim3
09.08.2022

Простая программа, для начала мы считаем первое значение сразу в min(это сделано чтобы не давать минимуму значение какой-то константы), затем запускаем цикл, в котором будем вводить число и тут же проверять его на наше условие (поиск минимума). Ну и в конце выводим результат, если что-то непонятно - в комментарии.

var

x, min, i : integer;

begin

writeln('Введите 15 значений: (каждое на новой строке): ');

readln(min);

for i := 1 to 14 do

   begin

   readln(x);

   if min > x then

       min := x;

   end;

writeln('Минимальное число в последовательности:', min);

end.

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