var i,n,p:integer;
a:array[1..10000] of integer;
begin
p:=1;
readln(n); {Вводится количество элементов массива}
for i:=1 to n do begin readln(a[i]); p:=p*a[i]; end; {Вводится каждый элемент массива и умножается на произведение ранее введённых}
writeln(exp(ln(p)/n)); {Вывод среднего арифметического - корень степени n из произведения всех элементов массива}
end.
#include <cstdio>
using namespace std;
class Clock
{
int h, m, s;
int isPM(int hour) {
if ( (hour > 12) && (hour < 24) )
return 1;
else
return 0;
}
public:
Clock() : h(0), m(0), s(0) {}
void setTime(int ph, int pm, int ps) {
try {
if ( !( (ph < 0) || (ph > 23) ) )
h = ph;
else
throw "Неверный час";
if ( !( (pm < 0) || (pm > 59) ) )
m = pm;
else
throw "Неверные минуты";
if ( !( (ps < 0) || (ps > 59) ) )
s = ps;
else
throw "Неверные секунды";
} catch (const char* e) {
printf("Ошибка: %s", e);
}
}
Clock(int ph, int pm, int ps) {
setTime(ph, pm, ps);
}
int hour() { return h; }
int min() { return m; }
int sec() { return s; }
void print1() {
printf("%d часов %d минут %d секунд\n", h, m, s);
}
void print2() {
char a_p;
int ph;
if (isPM(h)) {
a_p = 'p';
ph = h - 12;
} else {
a_p = 'a';
ph = h;
}
printf("%d %c. m. %d минут %d секунд\n", ph, a_p, m, s);
}
};
/* Проверка некоторых функций */
int main()
{
Clock clock1(23, 11, 07), clock2;
clock1.print2();
clock2.print1();
return 0;
}
Анализируем задание.
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
Мой мозг..
#include <iostream>
using namespace std;
int reduce_fraction(int n, int m)
{
if (m == 0) {
return n;
}
return reduce_fraction(m, n % m);
}
int main()
{
int num, dem;
cout << "Nominator: ";
cin >> num;
cout << "Denominator: ";
cin >> dem;
int nod = reduce_fraction(num, dem);
cout << num << '/' << dem << " => " << (num / nod) << '/' << (dem / nod) <<
endl;
return 0;
}