Полагаю ответ кроется в нахождении элемента в этом списке, который и повторяется ровно столько количество раз, скольки и равен индекс данного выражения. Т.е. если у нас 5 утверждений, то утверждение с "1" будет правдиво для себя же. Если у нас будет 2 утверждения с двойками, то они могут ссылаться друг на друга соответственно.
Если будет четыре "4", то они также могут ссылаться друг на друга, что они правдивы и тогда можно заверить, что они верны.
{
if (tnum < tden)
{
temp = tnum;
tnum = tden;
tden = temp;
}
tnum = tnum - tden;
}
gcd = tden; //вычисляем наибольший общий делитель
numerator = numerator / gcd; //делим числитель и знаменатель на
НОД, получаем сокращенную дробь
denominator = denominator / gcd;
Полагаю ответ кроется в нахождении элемента в этом списке, который и повторяется ровно столько количество раз, скольки и равен индекс данного выражения. Т.е. если у нас 5 утверждений, то утверждение с "1" будет правдиво для себя же. Если у нас будет 2 утверждения с двойками, то они могут ссылаться друг на друга соответственно.
Если будет четыре "4", то они также могут ссылаться друг на друга, что они правдивы и тогда можно заверить, что они верны.
Программа (C++):
#include <iostream>
#include <map>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int result=0;
int n, elem;
list<int> list_elems;
map<int, int> elems_map;
cout << "Введите N\n";
cin >> n;
cout << "Введите числа в утверждениях\n";
for (int i = 0; i < n; i++) {
cin >> elem;
list_elems.push_back(elem);
}
for (auto const& f : list_elems)
elems_map[f]++;
for (auto const& b : elems_map) {
if (b.first == b.second && result < b.first)
result = b.first;
}
if (result == 0)
cout << -1;
else
cout << result << " правдивы";
return 0;
}