Se citesc două numere naturale n şi m de câte două cifre fiecare. Să se spună dacă sunt formate sau nu din
aceleaşi cifre. Ex: n=57, m=75 =>”DA”; n=57, m=77 =>”NU”. In limbajul C !!
Răspunsuri la întrebare
În limbajul C, acest lucru poate fi realizat prin următorii pași:Convertim cele două numere naturale n și m în șiruri de caractere.Sortăm fiecare șir în ordine lexicografică.Comparăm șirurile sortate pentru a vedea dacă sunt identice sau nu.Dacă sunt identice, afișăm "DA", altfel afișăm "NU".Aici este un exemplu de cod:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int compare(const void *a, const void *b) {
return (*(char *)a - *(char *)b);
}
int main() {
int n, m;
scanf("%d%d", &n, &m);
char sn[5], sm[5];
sprintf(sn, "%d", n);
sprintf(sm, "%d", m);
qsort(sn, strlen(sn), sizeof(char), compare);
qsort(sm, strlen(sm), sizeof(char), compare);
if (strcmp(sn, sm) == 0) {
printf("DA");
} else {
printf("NU");
}
return 0;
}
#include
#include
int digit_set(int a)
{
int set = 0;
do
{
set |= 1 << abs(a % 10);
} while ((a /= 10) != 0);
return set;
}
bool same_digits(int a, int b)
{
return digit_set(a) == digit_set(b);
}
int main()
{
int n, m;
scanf("%d", &n);
scanf("%d", &m);
if ( same_digits(n, m) )
{
printf ( "DA");
}
else
{
printf ( "NU");
}
return 0;
}