по каналу связи передается последовательность положительных целых чисел, все числа не превышают 1000, их количество заранее неизвестно. каждое число передается отдельно. признаком конца передаваемой последовательности является число 0. после числа 0 передается контрольное значение – наибольшее число x, которое:
делится на 10;
может быть получено умножением двух различных чисел, входящих в полученную последовательность.
напишите эффективную программу, которая получает последовательность чисел и следующие за ней признак конца и контрольное значение, а также проверяет правильность контрольного значения. программа должна напечатать отчет следующего вида:
получено .. чисел
полученное контрольное значение: ….
вычисленное контрольное значение: …
контроль пройден (или – контроль не пройден)
#include <iostream>
using namespace std;
class Set {
int N, counter = 0;
float A, B;
public:
Set(int N, float A, float B) {
this->N = N;
this->A = A;
this->B = B;
}
void Count() {
for (int i = 0; i < N; i++) {
float x;
cin >> x;
if (A <= x && x <= B)
counter++;
}
cout << "Count = " << counter << endl;
}
};
signed main()
{
setlocale(LC_ALL, "Rus");
int N;
float A, B;
cout << "Введите число элементов: (N) ";
cin >> N;
cout << "\nВведите числа A и B: ";
cin >> A >> B;
Set m(N, A, B);
m.Count();
return 0;
}
a, b, c, d = float(input()), float(input()), float(input()), float(input())
array = [a, b, c, d] #Создаём массив, состоящий из 4 действительных чисел
FracPart = [a%1, b%1, c%1, d%1] #Создаём отдельный массив, состоящий из дробных частей исходных чисел
minimal = abs(min(FracPart)) #Переменной minimal присваиваем минимальное абсолютное значение между дробными частями
print('\nThe fractional part with the minimum absolute value is: ', round(minimal, 4))
"""Так как остаток от деления не целое число, то в цикле — переменную minimal мы округлим,
чтобы неточность перевода двоичного
в десятичный была не так уродлива.
"""
for i in range (len(array)):
#Из за этого нужно также округлить array[i], чтобы значения и вправду были друг другу равны, а не примерно
if round(array[i]%1, 4) == round(minimal, 4):
minFrPart = array[i] #В этой переменной хранится число, с минимальной дробной частью
print('The number with the minimum value of the fractional part among others is: ', minFrPart)
break