Witam
Zaczynam dopiero się uczyć C++, na zadanie mam - Obliczanie ilosci cyfr parzystych/nieparzystych w liczbie (np. w liczbie 123 jest 1 parzysta). Jak mogę to zrobić? Nie oczekuję gotowego kodu tylko pomocy jak się za to zabrać :)
0
1
Wczytał bym ją jako stringa, i potem sprawdzał czy "reszta z dzielenia" znaków przez 2 jest równa zero (jak tak to cyfra parzysta). Dla komputera wszystko jest liczbą, a tak się składa że parzyste cyfry mają też parzyste kody ASCII. Można by też wczytać jako liczbę i sprawdzać resztę z dzielenia przez 10, po sprawdzeniu czy parzysta ją odejmować i dzielić liczbę przez 10, ale wcześniejszy sposób wydaje mi się mniej problematyczny.
0
Z lekką pomocą kolegi zrobiłem to w następujący sposób (zamieszczam jeśli ktoś by kiedyś szukał)
//2. Obliczanie ilosci cyfr parzystych/nieparzystych w liczbie (np. w liczbie 123 mamy 1 parzysta)
#include <iostream>
using namespace std;
int parzyste(string);
int nieparzyste(string);
string liczba;
int main()
{
cout<<"Podaj liczbe: ";
cin>>liczba;
cout<<"Liczba zawiera "<<endl;
cout<<"Cyfr parzystych: "<<parzyste(liczba)<<endl;
cout<<"Cyfr nieparzystych: "<<nieparzyste(liczba)<<endl;
system("pause");
}
int parzyste(string liczba)
{
int dl=liczba.length();
int wynik=0;
for(int i=0; i<dl;i++)
{
if(liczba[i]%2==0)
wynik++;
}
return wynik;
}
int nieparzyste(string liczba)
{
int dl=liczba.length();
int wynik=0;
for(int i=0; i<dl;i++)
{
if(liczba[i]%2==1)
wynik++;
}
return wynik;
}
0
- Zapoznaj się z pojęciem formatowania kodu: http://4programmers.net/Forum/998482
- Zapoznaj się z inkrementacją, bo jej nie rozumiesz: http://4programmers.net/Forum/1101404
- Nie używaj innego niż angielskie nazewnictwa: http://4programmers.net/Forum/1208091
- Nie używaj zmiennych globalnych - to się zemści wcześniej czy później.
- Sensowna implementacja:
#include <iostream>
using namespace std;
size_t oddcount(const string &s)
{
size_t count=0;
for(char ch:s) count+=ch&1;
return count;
}
int main()
{
cout<<"Podaj liczbe: ";
string value;
cin>>value;
size_t odd=oddcount(value);
cout<<"Liczba zawiera"<<endl;
cout<<"Cyfr parzystych: "<<value.size()-odd<<endl;
cout<<"Cyfr nieparzystych: "<<odd<<endl;
return 0;
}
0
Dzięki wielkie ;) Ehh, będzie ciężej niż myślałem...