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

Бесконечно поле есть горизонтальные вертикальные стены правый конец горизонтальной стены с идёт с нижним концом вертикально стены длина стен Неизвестный в каждой стране есть ровно один проход это что точное место прохода его ширина неизвестно робот находится в клетке расположенный непосредственно слева от виде картины у её нижнего конца нарисую один сможешь после расположения стены роботы роботы напишите Доработал горит за окрашивающие все клетки расположены непосредственно выше горизонтальной стены или вертикально стены проход должны остаться не закрашенными робот должен закрасить только клетки удовлетворяющие данному слове например для приведённого выше рисунка робот должен закрыть следующие клетки смотрите рисунок при исполнении алгоритма робот не должен разрушаться выполнения алгоритма должно завершиться конечно расположение робота может быть произвольным Алгорим должен решать задачу для любого допустимого расположение стенки любого расположения размера проходим внутри стен алгоритм может быть среди формального исполнителя или записать текстом редакторе

👇
Открыть все ответы
Ответ:
//
//   Разработал GonanSoft
//
int i; 
unsigned long long k=0; // сумма зёрен на i-ом шаге
unsigned long long s=1; // количество зерен в i-ой клетке 
unsigned long long n; // переменная признак окончания

cout << 'количество зерен '; 
cin>>n;
for (i = 1; i <= 64; i++) 
{
  k=k+s;
  if (n<k)
    break;
  s=s<<1; 
}

if (n<>18446744073709551615)  //это проверка на максимум зёрен
  cout << 'Номер клетки = ' << i << '\n';
else
  cout << 'Сумма зёрен не превысит 18446744073709551615  ' << i << '\n';
//
4,6(26 оценок)
Ответ:
#include <iostream>

int minimal_digit(int n)
{
  const int base = 10;
  int min_digit = 0;
  while (n>0) {
    int digit = n%base;
    if (digit < min_digit)
        min_digit = digit;
    n /= base;
  }
  return min_digit;
}

int filter_digits(int n, int filter_by)
{
  const int base = 10;
  int pow_base = 1;
  int result = 0;
  
  if (filter_by == 0) {
    return n;
  }
  
  while (n>0) {
    int digit = n%base;
    if (digit % filter_by != 0) {
      result += digit * pow_base;
      pow_base *= base;
    }
    n /= base;
  }

  return result;
}

int main()
{
  int n;

  std::cout << "Введите число n: " << std::endl;
  std::cin >> n;
  
  int digit = minimal_digit(n);
  int result = filter_digits(n, digit);
  
  std::cout << "ответ: " << result << std::endl;

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