#include <iostream>
using namespace std;
int main(){
int n, count = 0, suma = 0;
cout<<"Vvesti kolichestvo elementow massiva\n";
cin>>n;
int arr[n];
cout<<"Vvesti elementy massiva\n";
for (int i = 0; i < n; ++i) {
cin>>arr[i];
}
for (int i = 0; i < n; ++i) {
if (arr[i]%5==0){
count ++;
suma += arr[i];
}
}
cout<<"Kolichestvo elementov kratnyh 5 = "<<count<<endl;
cout<<"Summa elementov kratnyh 5 = "<<suma<<endl;
}
Объяснение:
Создаем переменную n которая будет определять количество элементов в массиве. Потом объявляем переменные count(подсчет элементов кратным 5) и suma(аналогично).
Вводим количество элементов массива и заполняем сам массив.
Далее идет цикл и в нем условие "Если элемент массива при делении на 5 дает остаток 0(то есть число кратное 5) то..."
В условии к count добавляем 1 элемент каждый раз, когда условие правдиво.
К суме добавляем сам элемент, в том же случае.
Ну и выводим эти переменные
Sub Strange()
Dim r As Range, a As Variant, b As Variant, e As Variant, Max As Variant
Set r = Selection
a = r
Max = -1E+100
For Each e In a
If e < 0 And e > Max Then
Max = e
End If
Next
Dim i As Integer, j As Integer
b = a
j = LBound(b, 2) - 1
For i = LBound(a, 2) To UBound(a, 2)
If a(1, i) = Max Then
j = j + 1
b(1, j) = i
End If
Next
Set r = Range(Cells(2, 1), Cells(2, j))
Rows(2).Clear
r = b
End Sub
96
Объяснение:
Сначала вспомним, что такое конъюнкция: это аналог логической операции И(в простонародье - операции умножения). В бинарной(двоичной) системе счисления она используется так :
0 и 0 = 0
1 и 0 = 0
0 и 1 = 0
1 и 1 = 1
Ну, а теперь возьмём пример
Адрес: 231.32.255.131
Маска: 255.255.240.0
Отлично. Посмотрим сразу на число 255, оно в двоичной системе выглядит так : 11111111. Это значит, что при побитовой конъюнкции любого числа, получается тоже самое число. Т.е. :
231 = 11100111, 255 = 11111111. (возьму первые 4 бита : 1*1=1,1*1=1,1*1=1,1*0=0)
Т.о. 231(логическое И)255=231.
Теперь адрес сети:
231*255=231
32*255=32
255*240=240
131*0=0
Вот и получили адрес сети : 231.32.240.0
Теперь решение задачи :
Тут нужно в обратную сторону. Есть IP адрес, есть узел.
Узел : 98.162.71.123
Адрес: 98.162.71.96
Надо найти правый байт. У узла он равен 123(в десятичной) -> 1111011(в двоичной). У адреса он равен 96(в десятичной) -> 1100000.
Ну, а теперь обратное действие, смотрим на байты узла, умножаем на x, получаем байты адреса. Вот так :
1111011*=1100000
1*х=1 -> x=1
1*x=1 -> x=1
1*x=0 -> x=0
... И так далее, но дальше считать нет смысла, ибо все остальные пять байтов будут равны нулю, т.к. правая часть вся равна нулю(по свойствам выше)
Получили =1100000, а это тоже самое, что и последний байт адреса сети, и равен он 96.
Получили маску : 255.255.255.96