Scrieţi programul C/C++ care citeşte de la tastatură un număr natural n, cu cel mult 8 cifre,
şi afişează pe ecran numărul de cifre distincte ale numărului n.
Exemplu: pentru n=15356 se va afişa valoarea 4 deoarece numărul conţine 4 cifre distincte
şi anume 1, 3, 5 şi 6.
Răspunsuri la întrebare
Răspuns de
0
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
void main()
{
double n;
int arr[8] = {0,0,0,0,0,0,0,0};
int temp;
bool eDistinct;
int cifreDistincte = 0;
do {
cout << "Introduceti numarul:";
cin >> n;
if (n < 0 && n > pow(10, 9)) {
cout << "Numarul trebuie sa fie in intervalul 1-100000000";
}
} while (n < 0 || n > pow(10, 9));
for (int i = 7; i >= 0; i--) {
temp = n;
if (i == 7) {
arr[i] = n / pow(10, i);
}
else {
for (int c = 7; c > i; c--) {
temp = temp - arr[c] * pow(10, c);
} arr[i] = arr[i] = temp / pow(10, i);
}
}
for (int i = 7; i >= 0; i--) {
eDistinct = true;
for (int c = 0; c != i && c <= i; c++) {
if (arr[i] == arr[c] || arr[i] == 0) {
eDistinct = false;
}
} if(eDistinct)
cifreDistincte = cifreDistincte + 1;
}
cout << cifreDistincte << " cifre distincte";
_getch();
}
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
void main()
{
double n;
int arr[8] = {0,0,0,0,0,0,0,0};
int temp;
bool eDistinct;
int cifreDistincte = 0;
do {
cout << "Introduceti numarul:";
cin >> n;
if (n < 0 && n > pow(10, 9)) {
cout << "Numarul trebuie sa fie in intervalul 1-100000000";
}
} while (n < 0 || n > pow(10, 9));
for (int i = 7; i >= 0; i--) {
temp = n;
if (i == 7) {
arr[i] = n / pow(10, i);
}
else {
for (int c = 7; c > i; c--) {
temp = temp - arr[c] * pow(10, c);
} arr[i] = arr[i] = temp / pow(10, i);
}
}
for (int i = 7; i >= 0; i--) {
eDistinct = true;
for (int c = 0; c != i && c <= i; c++) {
if (arr[i] == arr[c] || arr[i] == 0) {
eDistinct = false;
}
} if(eDistinct)
cifreDistincte = cifreDistincte + 1;
}
cout << cifreDistincte << " cifre distincte";
_getch();
}
MrXDead:
Daca nu intelegi codul, te rog, intreaba-ma!:)
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Engleza,
9 ani în urmă
Matematică,
9 ani în urmă
Engleza,
9 ani în urmă