Анализируем задание. 1. Сумма кубов старшего и младшего разрядов и куб суммы старшего и младшего разрядов. Смотрим в пример, нам дано число 51. Сумма кубов это 5^3 + 1^3 = 125 + 1 = 126. Куб суммы это (5+1)^3 = 6^3 = 216. Все верно. 2. В порядке невозрастания - это значит, что в порядке убывания, то есть сначала мы записываем большее число (в примере 216), а потом меньшее (126). Получается число 216126.
Теперь анализируем данные нам числа. 10 у нас получиться не может, т.к. 1 и 0 получиться в результате вычислений (куб суммы и сумма кубов) не могут. 82. В результате вычислений должно получиться 8 и 2. Замечаем, что 8 - это 2^3, то есть куб суммы может быть равен 2. Давайте действительно предположим, что куб суммы может быть равен 2. Сразу исключается вариант (0+2)^3, т.к. число 02, то есть 2, не двузначное. Исключается и вариант (2+0)^3, т.к сумма кубов числа 20 равна 2^3 + 0^3 = 8, а куб суммы равен (2+0)^3 = 2^3 = 8. Получается число 88, а не 82. Рассматриваем число 11. (1+1)^3 = 2^3 = 8. 1^3 + 1^3 = 1+1 = 2. Записываем в порядке убывания и получаем число 82. 3. 28 получиться не может, т.к. 2 и 8 записаны в порядке возрастания, а 28 и 0 невозможно, т.к. в результате вычислений такие числа не получатся. 4. 927. Сразу понятно, что числа 9 и 27 не могут получиться в результате вычислений (они расположены в порядке возрастания). Тогда берем 92 и 7. Нет таких чисел, которые в кубе давали бы 92 и 7, поэтому это число не может получиться в результате преобразований. (Если бы хотя бы одно число являлось кубом, тогда можно было бы поразмыслить) 5. 6415. Можем взять числа 64 и 15. Расположены в порядке неубывания. 64 - это куб 4, значит, куб суммы должен быть равен 64. Замечаем, что мы в расчет взять можем только числа 4, 3, 2 и 1, кубы которых равны 64, 27, 8 и 1 соответственно, но не получится никак сделать из них 15, поэтому пара 64 и 15 не подходит. 641 и 5 тоже не подходит, так как ни одного числа с такими кубами нет. 6. 216126 подходит, см пример в условии 7. 512512. Ну сразу понятно, что 512 - это куб 8. Работаем :) Сумма кубов должна быть равна 512 и куб суммы тоже должен быть равен 512. Нет таких кубов, которые давали бы нам 512 в сумме, но мы видим, что числа одинаковые, потому можем сделать одну цифру в числе равной 0. 80 - идеальное число. (8+0)^3 = 8^3 = 512. 8^3 + 0^3 = 8^3 = 512. Получается 512512. 8. 62550. 6 и 2550; 62 и 550 - не подходят, т.к. расположены в порядке возрастания. Берем 625 и 50. Нет куба ни 625, ни 6255, ни 50, ни сумма никаких кубов не сможет дать нам такие числа. Не подходит. Итог: могут получиться числа: 82, 216126, 512512 Ответ: 3 Мой мозг..
const n = 10; //количество чисел, которое нужно сформировать First = -10; //С какого числа должны генерироваться случайные числа Second = 15;{По какое число должны генерироваться случайные числа(например в данном случае случайные числа генерируются в диапазоне от - 10 до 15)}
var f, g, h: text; i: integer; Number: array [1..n] of integer;{Массив, в который записываются числа, считанные из файлов}
begin randomize; assign(f, 'f.txt');//Инициализируем файл f assign(g, 'g.txt');//Инициализируем файл g assign(h, 'h.txt');//Инициализируем файл h rewrite(f);//Открываем файл f для записи for i:= 1 to n div 2 do write(f, random(abs(First) + abs(Second)) + First , ' ');{Первую половину чисел записываем в файл f} close(f);//Закрываем файл f rewrite(g);//Открываем файл g для записи for i:= (n div 2) + 1 to n do write(g, random(abs(First) + abs(Second)) + First, ' ');{Вторую половину случайно сгенерированных чисел записываем в файл g} close(g);//Закрываем файл g reset(f);//Открываем файл f для считывания for i:= 1 to n div 2 do read(f, Number[i]);{Первую половину чисел считываем из файла f в массив} close(f);//Закрываем файл f reset(g);//Открываем файл g для считывания for i:= (n div 2) + 1 to n do read(g, Number[i]);{Вторую половину чисел считываем из файла g в массив} close(g);//Закрываем файл g rewrite(h);//Открываем файл h для записи for i:= 1 to n div 2 do write(h, Number[i], ' ');{Первую половину считанных чисел из массива записываем в файл h} writeln(h);//Перевод на новую строку в файле h for i:= (n div 2) + 1 to n do write(h, Number[i], ' ');{Вторую половину считанных чисел из массива записываем в файл h} close(h);//Закрываем файл h end.
Все файлы создаются там же, где находится файл программы.