public class Main
{
public static void main(String[] args) {
int x = 0;
int[] mas = {2,7,3};
for(int i = 0; i < mas.length; i++){
x = x + mas[i];
}
int res = x/mas.length;
System.out.println(res);
}
}
Объяснение:
public class Main
{
public static void main(String[] args) {
int x = 0;
int[] mas = {2,7,3}; // объявляем массив
for(int i = 0; i < mas.length; i++){
x = x + mas[i]; // Цикл, который берет каждое число массива(mas[i]), и плюс с предыдущим(2+7+3)
}
int res = x/mas.length; // x делится на длину массива(3)
System.out.println(res); // Вывод результата
}
}
Переведем ip-адреса в двоичную систему:
121.171.5.70 = 01111001.10101011.00000101.01000110
121.171.5.107 = 01111001.10101011.00000101.01101011
По условию адреса находятся в одной сети, то есть смотрим совпадающие биты ( выделены жирным).
Получается адрес сети:
01111001.10101011.00000101.01000000
А маска :
11111111.11111111.11111111.11000000
Нам надо найти наименьшее количество адресов, то есть попробуем изменить маску, добавив один бит: 11111111.11111111.11111111.11100000
Применив поразрядную конъюнкцию вычисляем адрес сети для обоих адресов:
01111001.10101011.00000101.01000000
01111001.10101011.00000101.01100000
Как видим адреса сетей разные, что не соответствует условию задачи.
Поэтому подходящая маска для наименьшего количества адресов:
11111111.11111111.11111111.11000000
количество возможных адресов: 2⁶ = 64
ответ: 64
#include <bits/stdc++.h>
template<typename Type3>
class BS{
public:
Type3 deg2,deg3,deg4;
void info(){
std::cout<<deg2<<" "<<deg3<<" "<<deg4<<std::endl;
}
};
template<typename Type,typename Type1>
BS<Type1>KReturn(Type A){
BS<Type1>example;
example.deg2=std::pow(A,2);
example.deg3=std::pow(A,3);
example.deg4=std::pow(A,4);
return example;
}
int main(){
BS<int>ex1;
BS<float>ex2;
ex1=KReturn(5);
ex2=KReturn(5.5);
ex1.info();
ex2.info();
return 0;
}
//вот что я так себе написал