Informatică, întrebare adresată de singei, 8 ani în urmă

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!!!


mihaicutapg: Salut, in limbajul c++ nu doresti?
singei: ar fi de dorit în C deoarece așa se cere în condiție
mihaicutapg: ok
singei: dar dacă nu poți în C atunci poți face și în C++

Răspunsuri la întrebare

Răspuns de scannedf
2

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;

}


singei: Mai ajutat forate tare. Cum am promis poftim coroana :D
scannedf: cu placere
Răspuns de mariadavidadrian8978
1
Răspuns:
#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...
Alte întrebări interesante