Ini da doar 60 de puncte
#425 distincte1
Cerinţa
Se citesc de la tastatură trei numere naturale. Să se determine numărul de valori distincte.

Date de intrare
Programul va citi de la tastatură trei numere naturale.

Date de ieşire
Programul va afișa numărul de valori distincte care apar.

Restricţii şi precizări
Numerele citite sunt cuprinse între 0 și 1.000.000.000, inclusiv.

#include

using namespace std;

int main()
{
long long int a,b,c,cnt=0;
cin>>a>>b>>c;
if(a!=b && b!=c)
cnt=3;
if(a!=b && a==c)
cnt=2;
if(a!=c && a==b)
cnt=2;
if(a!=c && a!=b && b==c)
cnt=2;
if(b!=a && b==c)
cnt=2;
if(b!=c && b==a)
cnt=2;
if(b!=c && a!=b && a==c)
cnt=2;
if(c!=b && c==a)
cnt=2;
if(c!=c && c==b)
cnt=2;
if(c!=a && c!=b && a==b)
cnt=2;
cout< return 0;
}

Răspuns :

Explicație:

e foarte complicat cum ai gândit și foarte multe if-uri în care te încurci

sugerez o abordare mai simpla

if( a!=b) //avem 2 numere distincte sigur

{cnt=2;

if( a!=c sau b!=c) cnt++;

}

else //primele 2 nr sunt identice.in funcție de c, vedem dacă avem fie 1, fie 2 valori distincte

{ cnt=1;

if(b!=c) cnt++;

}

cout<<cnt;

Răspuns:

#include <iostream>

using namespace std;

int a, b, c;

int main()

{

cin>>a>>b>>c;

if(a==b && a==c) cout<<1;

else if(a==b && a!=c) cout<<2;

else if(b==c && b!=a) cout<<2;

else if(a==c && a!=b) cout<<2;

else if(a!=b && b!=c && a!=c) cout <<3;

return 0;}

Explicație: