Сизиф играет сам с собой в такую игру. у него есть лестница из 100 ступенек, на каждой ступеньке написан ее номер – число от 1 до 100. на ступеньках с номерами 1, 100 и 92 лежат по камню. за один ход сизиф берет любой крайний камень (лежащий на ступеньке с самым маленьким или на ступеньке с самым большим номером) и кладет его на ступеньку ровно посередине между двумя другими камнями. если же между двумя другими камнями четное количество ступенек, он выбирает любую из двух средних. когда ни один камень нельзя переложить таким образом, игра заканчивается. какое наибольшее количество ходов может продолжаться игра?
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double x1, y1, x2, y2, x3, y3, a, b, c;
cout << 'Введите координаты точек треугольника: ';
cin >> x1;
cin >> y1;
cin >> x2;
cin >> y2;
cin >> x3;
cin >> y3;
a = sqrt(pow((x2 - x1), 2) + pow((y2 - y1), 2));
b = sqrt(pow((x3 - x2), 2) + pow((y3 - y2), 2));
c = sqrt(pow((x1 - x3), 2) + pow((y1 - y3), 2));
if (a = b = c) {
cout << "Данный треугольник - равносторонний\n";
}
else if (a == b || b == c || a == c ) {
cout << "Данный треугольник - равнобедренный\n";
}
else if (a != b && b != c && a != c) {
cout << "Данный треугольник - разносторонний\n";
}
if (c > a && c > b) {
if (c*c == a*a + b*b) {
cout << "Данный треугольник - прямоугольный";
}
else if (c*c < a*a + b*b) {
cout << "Данный треугольник - остроугольный";
}
else {
cout << "Данный треугольник - тупоугольный";
}
}
else if (a > b && a > c) {
if (a*a == b*b + c*c) {
cout << "Данный треугольник - прямоугольный";
}
else if (a*a < b*b + c*c) {
cout << "Данный треугольник - остроугольный";
}
else {
cout << "Данный треугольник - тупоугольный";
}
}
else {
if (b*b == a*a + c*c) {
cout << "Данный треугольник - прямоугольный";
}
else if (b*b < a*a + c*c) {
cout << "Данный треугольник - остроугольный";
}
else {
cout << "Данный треугольник - тупоугольный";
}
}
}
2. Немного изменим ваш код и получим искомое значение x
Искомое число х = 16293
var
x, y, a, b, k: integer;
begin
k:=10000;
repeat
x:=k;
a := 0; b := 0; y := 1;
while x > 0 do
begin
if (x mod 10) mod 2 = 0
then
a := a * 10 + x mod 10
else begin
y := y * 10;
b := b * 10 + x mod 10
end;
x := x div 10
end;
a := a * y + b;
k := k + 1;
until a = 26391;
writeln(a:8, k-1:8);
end.