Очень У исполнителя Вычислитель есть 2 команды: 1) 1 2) *2. Сколько алгоритмов из 4 команд существует? Постройте дерево из 3-х команд и посчитайте результаты для начального числа 5. помеченных
Возможный вариант в C++ #include <iostream> int main() { using namespace std; int N; cout << "Enter N: "; cin >> N; int num; int max = 1; int i; for (i = 0; i < N; ++i) { cout << "Enter #" << i + 1 << " number: "; cin >> num; if ((num - 9) % 10 != 0 && num % 3 == 0) { max = num; break; } } for (int j = i + 1; j < N; ++j) { cout << "Enter #" << j + 1 << " number: "; cin >> num; if ((num - 9) % 10 != 0 && num % 3 == 0) if (num > max) max = num; } if (max != 1) cout << "Max number div by 3 and don't end 9: " << max << endl; else cout << "No numbers div by 3 and don't end 9" << endl; return 0; }
Наивные - загадываем число. Прибавляем к нему 7. Отнимаем загаданное число. x + 7 - x = 7 - загадываем число. Умножаем его на 7. Делим на загаданное число (не сработает для нуля) x * 7 / x = 7
Можно немного это замаскировать: - загадываем число. Умножаем его на 15873. Прибавляем 111111. Делим на 15873. отнимаем загаданное число. (15873x + 111111)/15873 - x = 7
Можно использовать какой-нибудь фокус, например, складывание сумм цифр до тех пор, пока не получится одно число (т.н. "числовой корень", пример: 255 -> 2 + 5 + 5 = 12 -> 1 + 2 = 3) - загадываем натуральное число. Умножаем на 9, находим числовой корень. Отнимаем 2. Разгадка в том, что числовой корень любого числа, делящегося на 9 и не равного нулю, равен 9.
Маскировка: - загадываем натуральное число. Умножаем на 777 и находим числовой корень. Потом на 666 и находим числовой корень. Прибавляем к результату 666. Находим сумму кубов цифр результата. И еще раз. Смотрим на число сотен результата. 666 делится на 9, так что числовой корень числа (666 * что-то) равен 9. 666 + 9 = 675. 6^3 + 7^3 +5^3 = 684. 6^3 + 8^3 + 4^3 = 792
#include <iostream>
int main()
{
using namespace std;
int N;
cout << "Enter N: ";
cin >> N;
int num;
int max = 1;
int i;
for (i = 0; i < N; ++i)
{
cout << "Enter #" << i + 1 << " number: ";
cin >> num;
if ((num - 9) % 10 != 0 && num % 3 == 0)
{
max = num;
break;
}
}
for (int j = i + 1; j < N; ++j)
{
cout << "Enter #" << j + 1 << " number: ";
cin >> num;
if ((num - 9) % 10 != 0 && num % 3 == 0)
if (num > max)
max = num;
}
if (max != 1)
cout << "Max number div by 3 and don't end 9: " << max << endl;
else
cout << "No numbers div by 3 and don't end 9" << endl;
return 0;
}
- загадываем число. Прибавляем к нему 7. Отнимаем загаданное число.
x + 7 - x = 7
- загадываем число. Умножаем его на 7. Делим на загаданное число (не сработает для нуля)
x * 7 / x = 7
Можно немного это замаскировать:
- загадываем число. Умножаем его на 15873. Прибавляем 111111. Делим на 15873. отнимаем загаданное число.
(15873x + 111111)/15873 - x = 7
Можно использовать какой-нибудь фокус, например, складывание сумм цифр до тех пор, пока не получится одно число (т.н. "числовой корень", пример: 255 -> 2 + 5 + 5 = 12 -> 1 + 2 = 3)
- загадываем натуральное число. Умножаем на 9, находим числовой корень. Отнимаем 2.
Разгадка в том, что числовой корень любого числа, делящегося на 9 и не равного нулю, равен 9.
Маскировка:
- загадываем натуральное число. Умножаем на 777 и находим числовой корень. Потом на 666 и находим числовой корень. Прибавляем к результату 666. Находим сумму кубов цифр результата. И еще раз. Смотрим на число сотен результата.
666 делится на 9, так что числовой корень числа (666 * что-то) равен 9. 666 + 9 = 675. 6^3 + 7^3 +5^3 = 684. 6^3 + 8^3 + 4^3 = 792