Написать программу №1
Вводятся 4 числа – длины отрезков. Найти максимальную площадь треугольника составленного из трёх отрезков этого набора или написать, что таких треугольников нет.
№2
Вводится четырёхзначное натуральное число. Проверить, является ли оно палиндромом, т. е. числом, которое одинаково читается слева направо и справа налево. Если не является, то вывести ближайшее следующее число-палиндром.

Evloevckuú Evloevckuú    3   02.11.2020 17:20    56

Ответы
arianadorofeva arianadorofeva  02.12.2020 17:30

#include <iostream>

#include <vector>

#include <set>

#include <cmath>

using namespace std;

bool check(double a, double b, double c){

   return !(a >= b + c || b >= a + c || c >= b + c);

}

double square(double a, double b, double c){

   double p = (a+b+c)/2;

   return sqrt(p * (p-a) * (p-b) * (p-c));

}

bool is_palind(int k){

   string s = to_string(k);

   for(int i = 0; i < s.length() - i - 1; i++)

       if(s[i] != s[s.length()-i-1])

           return false;

   return true;

}

void solve1(){

   vector<double> lines(4);

   double ans = -1;

   for(auto &i : lines) cin >> i;

   for(int i = 0; i < 4; i++)

       for(int j = i + 1; j < 4; j++)

           for(int k = j + 1; j < 4; j++)

               if(check(lines[i],lines[j],lines[k]))

                   ans = max(ans,square(lines[i],lines[j], lines[k]));

   ans == -1 ? cout << "No solution" : cout << ans;

}

void solve2(){

   set<int> s;

   for(int i = 1000; i < 10000; i++)

       if(is_palind(i))

           s.insert(i);

   int n;

   cin >> n;

   s.find(n) != s.end() ? cout << n : cout << *upper_bound(s.begin(),s.end(),n);

}

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика