Cineva? Un exercițiu măcar...
Răspunsuri la întrebare
Răspuns:
Nu ma pricep la info, dar voi atașa niște poze cu formule, poate te ajuta.
Explicație:
În prima e cu triunghi, în a doua cu ultima cifra.
Răspuns:
#include <iostream>
#include <cmath>
static void verificaTriunghi(int a, int b, int c)
{
int max = std::max({a, b, c});
if (a == max)
(a * a == (b * b) + (c * c)) ? std::cout << "Este triunghi dreptunghic\n" : std::cout << "Nu este triunghi dreptunghic\n";
else if (b == max)
(b * b == (a * a) + (c * c)) ? std::cout << "Este triunghi dreptunghic\n" : std::cout << "Nu este triunghi dreptunghic\n";
else
(c * c == (a * a) + (b * b)) ? std::cout << "Este triunghi dreptunghic\n" : std::cout << "Nu este triunghi dreptunghic\n";
}
static int numarCifre(int varNumar)
{
return int(log10(varNumar) + 1);
}
static int verificaNumar(int varNumar)
{
if (varNumar % 10 == (varNumar / 10) % 10)
return (varNumar / 1000) % 10;
return -1;
}
int main()
{
// 1. Se dau trei numere a, b și c. Realizați un program care verifică dacă triunghiul este dreptunghic.
int a{3}, b{4}, c{5};
verificaTriunghi(a, b, c);
// 2. Se dau două numere a și b. Să se afișeze ultima cifră a celui mai mare număr
std::cout << "Ultima cifra a celui mai mare numar >> ";
(a > b) ? std::cout << a % 10 << "\n" : std::cout << b % 10 << "\n";
// 3. Se dă un număr natural n. Dacă ultimele două cifre sunt egale se va afișa cifra miilor.
int n{1024};
if (numarCifre(n) >= 4)
{
int cifraMiilor = verificaNumar(n);
cifraMiilor != -1
? std::cout << "Cifra miilor este >> " << cifraMiilor << "\n"
: std::cout << "Numarul nu indeplineste cerintele\n";
}
else
std::cout << "Numarul nu indeplineste cerintele\n";
return 0;
}
Explicație:
La aia cu triunghiul ca să fie dreptunghic trebuie să verifici dacă latura cea mai mare la pătrat este egală cu suma celorlalte două laturi la pătrat.
La al doilea efectiv verifici care e mai mare dintre cele două numere și-i afișezi ultima cifră cu nr % 10.
La al treilea exercițiu verifici dacă numărul este format din 4 sau mai multe cifre. Dacă îndeplinește cerința asta verifici dacă ultimele două cifre sunt egale. Dacă sunt egale returnezi cifra miilor. Dacă nu, returnezi -1. Dacă verificaNumar(...) returnează -1 înseamnă că cifrele n-au fost egale și afișezi că „Numarul nu îndeplinește cerințele”. La fel și dacă are mai puțin de 4 cifre.
https://www.tutorialspoint.com/determining-how-many-digits-there-are-in-an-integer-in-cplusplus
( pentru explicația funcției numarCifre(...) și versiunea mai „ușoară” )