Полагаю ответ кроется в нахождении элемента в этом списке, который и повторяется ровно столько количество раз, скольки и равен индекс данного выражения. Т.е. если у нас 5 утверждений, то утверждение с "1" будет правдиво для себя же. Если у нас будет 2 утверждения с двойками, то они могут ссылаться друг на друга соответственно.
Если будет четыре "4", то они также могут ссылаться друг на друга, что они правдивы и тогда можно заверить, что они верны.
Максимальное число, составленное из утроенного произведения цифр будет 9*3*N - не может быть больше 54, т.е. N может быть только 1 или 2. По условию х>=10 -> N=2 (N -порядок числа). Поэтому искать нужно среди чисел от 11 до 54. Решение - число 15.
var n,m: integer; begin write('n = '); readln(n); if n=2 then begin m:=11; repeat if (m mod 10)*(m div 10)*3=m then begin writeln('число: ',m); m:=55; end; m:=m+1; until m>54; end else writeln('нет решения'); end.
Полагаю ответ кроется в нахождении элемента в этом списке, который и повторяется ровно столько количество раз, скольки и равен индекс данного выражения. Т.е. если у нас 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;
}
9*3*N - не может быть больше 54, т.е.
N может быть только 1 или 2. По условию х>=10 -> N=2 (N -порядок числа).
Поэтому искать нужно среди чисел от 11 до 54. Решение - число 15.
var n,m: integer;
begin
write('n = '); readln(n);
if n=2 then
begin m:=11;
repeat
if (m mod 10)*(m div 10)*3=m then
begin
writeln('число: ',m);
m:=55;
end;
m:=m+1;
until m>54;
end
else writeln('нет решения');
end.