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

Получить число 277 из 4
за 9 шагов при этом пользуясь раздвоителем

👇
Открыть все ответы
Ответ:
nail4iklatyopo
nail4iklatyopo
23.12.2020

#include <iostream>

#include <iomanip>

#include <stdio.h>

using namespace std;

//функция вывода массива в консоль

void printArray (int arr[][4], int n) {

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

       for (int j = 0; j < n; j++) {

           cout << setw(5) << arr[i][j];

       }

       cout << endl;

   } cout << endl;

}

//функция замены всех отрицательных элементов нулями

void taskOne (int arr[][4], int n) {

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

       for (int j = 0; j < n; j++) {

           if (arr[i][j] < 0) arr[i][j] = 0;

       }

   }

}

//функция нахождения суммы парных элементов

void taskTwo (int arr[][4], int n) {

   int sum = 0;

   cout << "Сумма парных чисел (";

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

       for (int j = 0; j < n; j++) {

           if (arr[i][j] % 2 == 0 && arr[i][j] != 0) {

               if(sum!=0) cout << ", "; //для красоты вывода)

               cout << arr[i][j];

               sum = sum + arr[i][j];

           }

       }

   }

   cout << ") = " << sum << endl << endl;

}

//функция нахождения среднего арифметическое мин и макс

void taskThree (int arr[][4], int n) {

   int max = arr[0][0];

   int min = arr[0][0];

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

       for (int j = 1; j < n; j++) {

           // Понятное дело что минимальное число в массиве 0, но может имеется

           // ввиду минимальное кроме 0. Если нет то проверку на ноль

           // можно убрать arr[i][j] != 0

           if (arr[i][j] != 0 && arr[i][j] < min) min = arr[i][j];

           if (arr[i][j] > max) max = arr[i][j];

       }

   }

   

   float result = float(max+min)/(n*n);

   cout << "max = " << max << ", min = " << min <<endl;

   cout << "Среднее арифметическое = " << result << endl <<endl;

}

int main() {

   const int n = 4; //размер массива

   int arr[n][n]; //объявляем двумерный массив размером 4 на 4

   

   // Многомерный массив заполняется значениями с вложенных циклов.

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

       for (int j = 0; j < n; j++) {

           arr[i][j] = rand() % 81 + (-40); // генерируем случайное число от -40 до 40

           //  rand() % N; возвращает число от 0 до N-1

           // Если сгенерируется число 80 то отнимая 40 получим нужный максимум

           // а если 0 - то -40, тоесть нужный нам минимум

       }

   }

   

   // Выводим массив в консоль.

   cout << "Сгенерированный массив 4 на 4" << endl << endl;

   printArray(arr, n);

   

   // №1 - Заменяем все отрицательные элементы нулями.

   cout << "Задание №1" << endl << endl;

   taskOne(arr, n);

   printArray(arr, n);

   

   // №2 - Заменяем все отрицательные элементы нулями.

   cout << "Задание №2" << endl << endl;

   taskTwo(arr, n);

   // №3 - Заменяем все отрицательные элементы нулями.

   cout << "Задание №3" << endl << endl;

   taskThree(arr, n);

   

   return 0;

}

На скриншоте вывод программы


С++ двовииірні масиви (если можно, то с объяснением)Большое , чем кто . Очень нужно
4,8(83 оценок)
Ответ:
keksikgovad
keksikgovad
23.12.2020

Количество зёрен на клетке будет равно 2^(N-1)

Тут сказано использовать переменную типа integer, при этом надо помнить, что максимальный номер клетки, который можно задавать равен 31 (для номеров выше будет либо ошибка, либо неверный ответ).

Чтобы считать зерно вплоть до последней, 64-ой клетки шахматной доски- надо менять тип на uint64 либо BigInteger (но, они не везде доступны да и программу надо будет править).

Вариант с циклом loop (в нём задаётся число повторов)

function Zern2(a: integer): integer;

begin

Result := 1;

loop a-1 do

Result := Result * 2;

end;

begin

var n,m: integer;

write('Введите номер клетки: ');

Read(n);

m:=Zern2(n);

write('Зёрен на этой клетке: ',m,' шт.');

end.

Вариант с циклом while:

function Zern2(a: integer): integer;

begin

Result := 1;

while a>1 do

begin

Result := Result * 2;

a := a - 1;

end;

end;

begin

var n,m: integer;

write('Введите номер клетки: ');

Read(n);

m:=Zern2(n);

write('Зёрен на этой клетке: ',m,' шт.');

end.

Вариант без цикла:

function Zern2(a: integer): integer;

begin

Result := Trunc(power(2,a-1));

end;

begin

var n,m: integer;

write('Введите номер клетки: ');

Read(n);

m:=Zern2(n);

write('Зёрен на этой клетке: ',m,' шт.');

end.

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