Ma poate ajuta cineva?? Stiu ca se poate face cu vectori de frecventa dar nu am facut inca.. daca stie cineva alta metoda as aprecia mult ajutorul!
Subprogramul suma are doi parametri:
• n, prin care primește un număr natural din intervalul [0,109];
• s, prin care furnizează suma cifrelor impare distincte din scrierea acestuia.
Scrieți definiția completă a subprogramului.
Exemplu: dacă n=4713835, după apel s=16 (16=7+1+3+5), iar dacă n=48, după apel s=0.
Răspunsuri la întrebare
Răspuns de
1
Răspuns:
Doar subprogramul:
void suma (int n, int &s)
{
s = 0;
int v[4] = {0};
int k = 0;
while (n > 0) //cat timp exista cifre in n
{
int ok = 0;
for (int i = 1; i <= 4; i ++)
if (n%10 == v[i]) ok = 1;
if (ok == 0 && n%2 == 1) {
k ++;
v[k] = n%10;
s = s + n%10;
}
n = n/10;
}
}
Explicație:
Tot programul:
#include <iostream>
using namespace std;
void suma (int n, int &s)
{
s = 0;
int v[4] = {0};
int k = 0;
while (n>0) //cat timp exista cifre in n
{
int ok = 0;
for (int i = 1; i <= 4; i ++)
if (n%10 == v[i]) ok = 1;
if (ok == 0 && n%2 == 1) {
k ++;
v[k] = n%10;
s = s + n%10;
}
n = n/10;
}
}
int main ()
{
int n, s;
cin >> n;
suma (n, s);
cout << s;
return 0;
}
Am rulat programul cu exemplul dat si am atasat o poza cu ce se afiseaza
Anexe:
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Biologie,
8 ani în urmă
Matematică,
9 ani în urmă
Geografie,
9 ani în urmă