Переводим третий байт IP и адреса сети в двоичную систему 50 - 110010 48 - 110000 Так как это байт (а в байте 8 бит), допишем два незначащих нуля к получившимся числам: 00110010 - IP 00110000 - адрес сети
Адрес сети получается с применения поразрядной конъюнкции к маске и IP, проще говоря, при перемножении разрядов маски и IP-адреса. И в маске всегда сначала идут только единицы, а потом только нули. То есть можно записать так:
- маска 00110010 - IP 00110000 - адрес сети
где иксы в маске и цифры в IP-адресе - множители, а разряды адреса сети - произведение.
На 3 и 4 месте в маске однозначно должны быть единицы, т.к. если там будут нули, то и в адресе сети будут нули. Плюс к этому, в маске всегда сначала идут только единицы, а потом только нули, то есть можно записать так:
1111 - маска 00110010 - IP 00110000 - адрес сети
Второй справа разряд IP-адреса - единица, а адреса сети - ноль, значит в маске может быть только ноль:
1111хх00 - маска 00110010 - IP 00110000 - адрес сети
Оставшиеся два икса могут быть и единицами, и нулями. Нужно наименьшее возможное значение, значит поставим на их место нули:
11110000 - маска 00110010 - IP 00110000 - адрес сети
То есть третий байт маски 11110000, переведём в десятичную - получим 240.
1. #include <iostream> using namespace std; void main() { //задаём русский язык для консоли setlocale(LC_ALL, "Russian"); long sum = 0; int a; cout << "Введите a" << endl; cin >> a; if (a > 500) { cout << "а > 500" << endl; } else { sum = (500 * 501 / 2) - ((a - 1) * a ) / 2; cout << sum; } } 2. #include <iostream> using namespace std; void main() { //задаём русский язык для консоли setlocale(LC_ALL, "Russian"); double average = (1 + 1000) / 2.; cout << "Среднее арифметические чисел от 1 до 1000" << average << endl; } 3 #include <iostream> using namespace std; void main() { //задаём русский язык для консоли setlocale(LC_ALL, "Russian"); int a = 0, b = 0; cout << "Введите границы диапазона" << endl; cin >> a >> b; cout << "Все числа:" << endl; if (a <= b) { for (int i = a; i <= b; i++) { cout << i << endl; } } else { for (int i = b; i < a; i++) { cout << i << endl; } } cout << "Чётные числа:" << endl; if (a <= b) { for (int i = a; i <= b; i++) { if (i % 2 == 0) { cout << i << endl; } } } else { for (int i = b; i < a; i++) { if (i % 2 == 0) { cout << i << endl; } } } cout << "Нечётные числа:" << endl; if (a <= b) { for (int i = a; i <= b; i++) { if (i % 2 != 0) { cout << i << endl; } } } else { for (int i = b; i < a; i++) { if (i % 2 != 0) { cout << i << endl; } } } cout << "Числа, кратные 7:" << endl; if (a <= b) { for (int i = a; i <= b; i++) { if (i % 7 == 0) { cout << i << endl; } } } else { for (int i = b; i < a; i++) { if (i % 7 == 0) { cout << i << endl; } } } } 4. #include <iostream> using namespace std; void main() { //задаём русский язык для консоли setlocale(LC_ALL, "Russian"); int a = 0, sum = 0; cout << "Введите числа" << endl; while (true) { cin >> a; if (a == 0) { break; } sum += a; } cout << "Сумма =" << sum << endl; }
50 - 110010
48 - 110000
Так как это байт (а в байте 8 бит), допишем два незначащих нуля к получившимся числам:
00110010 - IP
00110000 - адрес сети
Адрес сети получается с применения поразрядной конъюнкции к маске и IP, проще говоря, при перемножении разрядов маски и IP-адреса. И в маске всегда сначала идут только единицы, а потом только нули. То есть можно записать так:
- маска
00110010 - IP
00110000 - адрес сети
где иксы в маске и цифры в IP-адресе - множители, а разряды адреса сети - произведение.
На 3 и 4 месте в маске однозначно должны быть единицы, т.к. если там будут нули, то и в адресе сети будут нули. Плюс к этому, в маске всегда сначала идут только единицы, а потом только нули, то есть можно записать так:
1111 - маска
00110010 - IP
00110000 - адрес сети
Второй справа разряд IP-адреса - единица, а адреса сети - ноль, значит в маске может быть только ноль:
1111хх00 - маска
00110010 - IP
00110000 - адрес сети
Оставшиеся два икса могут быть и единицами, и нулями. Нужно наименьшее возможное значение, значит поставим на их место нули:
11110000 - маска
00110010 - IP
00110000 - адрес сети
То есть третий байт маски 11110000, переведём в десятичную - получим 240.
#include <iostream>
using namespace std;
void main()
{
//задаём русский язык для консоли
setlocale(LC_ALL, "Russian");
long sum = 0;
int a;
cout << "Введите a" << endl;
cin >> a;
if (a > 500)
{
cout << "а > 500" << endl;
}
else
{
sum = (500 * 501 / 2) - ((a - 1) * a ) / 2;
cout << sum;
}
}
2.
#include <iostream>
using namespace std;
void main()
{
//задаём русский язык для консоли
setlocale(LC_ALL, "Russian");
double average = (1 + 1000) / 2.;
cout << "Среднее арифметические чисел от 1 до 1000" << average << endl;
}
3
#include <iostream>
using namespace std;
void main()
{
//задаём русский язык для консоли
setlocale(LC_ALL, "Russian");
int a = 0, b = 0;
cout << "Введите границы диапазона" << endl;
cin >> a >> b;
cout << "Все числа:" << endl;
if (a <= b)
{
for (int i = a; i <= b; i++)
{
cout << i << endl;
}
}
else
{
for (int i = b; i < a; i++)
{
cout << i << endl;
}
}
cout << "Чётные числа:" << endl;
if (a <= b)
{
for (int i = a; i <= b; i++)
{
if (i % 2 == 0)
{
cout << i << endl;
}
}
}
else
{
for (int i = b; i < a; i++)
{
if (i % 2 == 0)
{
cout << i << endl;
}
}
}
cout << "Нечётные числа:" << endl;
if (a <= b)
{
for (int i = a; i <= b; i++)
{
if (i % 2 != 0)
{
cout << i << endl;
}
}
}
else
{
for (int i = b; i < a; i++)
{
if (i % 2 != 0)
{
cout << i << endl;
}
}
}
cout << "Числа, кратные 7:" << endl;
if (a <= b)
{
for (int i = a; i <= b; i++)
{
if (i % 7 == 0)
{
cout << i << endl;
}
}
}
else
{
for (int i = b; i < a; i++)
{
if (i % 7 == 0)
{
cout << i << endl;
}
}
}
}
4.
#include <iostream>
using namespace std;
void main()
{
//задаём русский язык для консоли
setlocale(LC_ALL, "Russian");
int a = 0, sum = 0;
cout << "Введите числа" << endl;
while (true)
{
cin >> a;
if (a == 0)
{
break;
}
sum += a;
}
cout << "Сумма =" << sum << endl;
}