Se consideră numerele naturale din mulţimea {0, 1, 2, …, n}. Elaboraţi un program care determină toate elementele pentru care suma cifrelor este un număr impar utilizînd algoritmul bazat pe metoda trierii.
Programul să fie creat în limbajul C. Dau Coroana!!!
Răspunsuri la întrebare
Răspuns:
#include <stdio.h>
int main(void) {
int n;
printf("Introduceti valoarea lui n: ");
scanf("%d", &n);
// Lista de elemente care îndeplinesc condiţia
int elements[n];
int num_elements = 0; // Numărul de elemente din listă
for (int i = 0; i <= n; i++) {
// Calculăm suma cifrelor lui i
int sum = 0;
int num = i;
while (num > 0) {
sum += num % 10;
num /= 10;
}
// Dacă suma cifrelor este un număr impar, adăugăm elementul la listă
if (sum % 2 == 1) {
elements[num_elements] = i;
num_elements++;
}
}
// Afişăm lista de elemente care îndeplinesc condiţia
printf("Elementele pentru care suma cifrelor este un numar impar sunt: ");
for (int i = 0; i < num_elements; i++) {
printf("%d ", elements[i]);
}
printf("\n");
return 0;
}
#include
using namespace std;
int n,m,i,k;
int SumaCifrelor(int num)
{
int s=0;
do
{
s=s+num%10;
num=num/10;
}while (num!=0);
return s;
}
bool SolutiePosibila(int num)
{
if (SumaCifrelor(num)==m) return true;
else return false;
}
void PrelucrareaSolutiei(int num, int &k)
{
cout << num << " ";
++k;
}
int main()
{
cout << "n= "; cin >> n;
cout << "m= "; cin >> m;
cout << " Elemente cu proprietatea data: \n";
for (i=1; i<=n; ++i)
if (SolutiePosibila(i)) PrelucrareaSolutiei(i,k);
if (k==0) cout << "opss... nu exista";
return 0;
}
Explicație:
folosita metoda Trierii...