1.Realizați o aplicație C++ care citește un număr întreg de la tastatură de exact 3 cifre și afișează:
a)Cifrele numărului, în ordine de la prima la ultima cifră, separate printr-un spațiu.
b)Cifra maximă
c)Cifra minimă
d)Numărul oglindit. (Ex. N=173 oglinditul este 371)
e)Numărul de numere distincte cu 3 cifre care se pot forma cu toate cifrele numărului dat.( Ex. N=173 se afișează 6 ) va rog mult , multumesc !
Răspunsuri la întrebare
Răspuns:
#include <iostream>
#include <algorithm>
using namespace std;
int n, minim, maxim, ogl, cnt, v[3];
int main()
{
cin >> n;
cout << "cifrele numarului sunt " << n / 100 << " " << n / 10 % 10 << " " << n % 10 << "\n";
if (n / 100 >= n / 10 % 10)
{
maxim = n / 100;
minim = n / 10 % 10;
}
else
{
minim = n / 100;
maxim = n / 10 % 10;
}
if (n % 10 > maxim)
{
maxim = n % 10;
}
if (n % 10 < minim)
{
minim = n % 10;
}
cout << "cifra maxima este " << maxim << "\n";
cout << "cifra minima este " << minim << "\n";
while (n)
{
ogl = ogl * 10 + n % 10;
v[cnt] = n % 10;
cnt++;
n /= 10;
}
cout << "oglinditul este " << ogl << "\n";
cout << "numarul de numere distincte este ";
sort(v, v + 3);
cnt = 1;
for (int i = 0; i < 2; i++)
{
if (v[i] != v[i + 1])
{
cnt++;
}
}
if (cnt == 3)
{
cout << "6";
}
if (cnt == 2)
{
cout << "3";
}
if (cnt == 1)
{
cout << "1";
}
}
Explicație:
Am profitat de faptul ca programul citeste un numar de exact 3 cifre, astfel am particularizat algoritmul pentru acest tip de numar. Introducerea unui numar cu mai mult sau mai putin de 3 cifre nu va duce la un rezultat corect. Pentru numarul de numere distincte, combinatiile le poti face pe o foaie deoarece sunt doar 3 cazuri si nu este necesara introducerea unui algoritm de cautare a acestora.