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

Выяснить, делится ли положительное целое число на 4. Число может иметь до 30 цифр и задаётся массивом A из N цифр.

Примечание: Число делится на 4, если две его последние цифры - нули или образуют число, которое делится на 4.
Например, число 128 делится на 4, поскольку 28 делится на 4.

Вывести остаток от деления числа на 4 и Yes/No (делится или нет заданное число на 4).

Формат ввода:

N
A [1] A [2] ... A [N]
(числа вводятся через пробел)
Формат вывода:

r - остаток от деления числа на 4 и Yes/No (делится или нет число на 4)
Пример ввода:

3
1 2 8

Пример вывода:

0
Yes

👇
Ответ:
Irina1357
Irina1357
10.09.2020

Відповідь:

#include <iostream>

using namespace std;

void cinarr(int *arr,int N){

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

 cout << "A[" << i + 1 << "] : ";

 cin >> arr[i];

}

}

void printnumber(int *arr,int N){

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

 cout << arr[i];

}

}

bool check(int *arr,int N){

int number = arr[N - 2] * 10 + arr[N - 1];

if(number % 4 == 0){

 return true;

}  

return false;

}

int main(){

setlocale(LC_ALL , "Rus");

int N;

cout << "Введите кол-во цифр числа(не больше 30): ";

cin >> N;

if(N < 0 || N > 30){

 cout << "Неправильно введены входные данные..." << endl;

 return 1;

}

int arr[N];

cinarr(arr,N);

cout << "Число: ";

printnumber(arr,N);

cout << endl;

if(check(arr,N) == true){

 cout << "Число делиться на 4 " << endl;

}

else{

 cout << "Число не делится на 4 " << endl;

}

return 0;

}

Пояснення:

4,6(55 оценок)
Открыть все ответы
Ответ:
Cyndyma
Cyndyma
10.09.2020
Программу надо сформатировать и тогда её структура будет видна лучше.
А чтобы понять, как идет выполнение, в нужных точках ставим промежуточную выдачу - это называется "трассировкой".

var
  s, k: integer;
label
  met;
begin
  s:=-12;
  k:=90;
  Writeln('s=',s,', k=',k);
  s:=s+10;
  Writeln('s=',s);
met:
  Writeln('Метка met:');
  k:=k+10; Write('k=',k);
  if k<200 then s:=50 else s:=s+k;
  Writeln(', s=',s);
  if k<200 then goto met;
  Writeln('Результат: s=',s)
end.

Результат выполнения программы:
s=-12, k=90
s=-2
Метка met:
k=100, s=50
Метка met:
k=110, s=50
Метка met:
k=120, s=50
Метка met:
k=130, s=50
Метка met:
k=140, s=50
Метка met:
k=150, s=50
Метка met:
k=160, s=50
Метка met:
k=170, s=50
Метка met:
k=180, s=50
Метка met:
k=190, s=50
Метка met:
k=200, s=250
Результат: s=250
4,4(22 оценок)
Ответ:
mariyapopova21
mariyapopova21
10.09.2020
1)  Один байт = 8 бит, максимальное число 2^8 - 1 = 255, если числа без знака.  Для знаковых чисел старший бит отводится под знак числа, следовательно, минимальное число = - 2^7 - 1
 = - 127,  максимальное число = + 127
2)  Число 1607, ячейка двухбайтовая, один бит под знак, следовательно, под число отводится 15 бит,  в двоичном представлении 1607(10) = 11001000111(2), дополняем до 16 бит, старший бит - знаковый - нулевой, так как число положительное
= 0000011001000111(2) - это двоичное представление в двухбайтовой ячейке, чтобы получить шестнадцатиричное представление, разбиваем число справа - налево по 4 бита
0000  0110  0100  0111  и записываем в шестнадцатиричном виде 
0111(2) = 7(16)   0100(2) = 4(16)   0110(2) =6(16)   0000(2) = 0(16)
1607(16) = 0647(16) или без старшего не значащего нуля  = 647(16)
3) для получения дополнительного кода числа, находят обратное число, или инверсию числа,
для этого каждый бит числа изменяют на противоположный, 1 на 0, 0 на 1
105(10) = 1101001(2) - это и есть дополнительный код числа - 105, т.е. дополнительным кодом
числа (- а)   будет число а.
Найдем дополнительный код в однобайтовой ячейке числа 105(10) = 01101001(2),
а) находим обратное  01101001(2)  ->(обратное) ->10010110(2)
б) дополнительный код-> обратный код + 1 ->(дополнительный)->10010111(2), а это число - 105
потому, что отрицательные числа представляются в дополнительном коде.
Если для числа - 105 найти дополнительный код, то получим число 105
10010111(2)->(дополнительный)->01101000+1->01101001 = 69(16) = 16*6+9 = 96+9 = 105
4,5(15 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ