Potrzebuję pomocy w zadaniu, którego kod jest przedstawiony poniżej.
Program powinien wypisywać ile liczb w danym systemie jest liczbami palindromicznymi.
Przykładowo dla 17 wychodzi wyniki:
2 1
3 1
4 2
5 2
6 2
7 2
8 2
9 2
10 2
11 2
12 2
13 2
14 2
15 2
16 3
Co powinienem poprawić aby wynik wyglądał tak:
2 1
3 0
4 1
5 0
6 0
7 0
8 0
9 0
10 0
11 0
12 0
13 0
14 0
15 0
16 1
#include <iostream>
using namespace std;
string zamiana(int d, int podstawa)
{
string b="";
int cyfra;
while(d>0)
{
cyfra=d%podstawa;
if(cyfra<10)
b=char('0'+cyfra)+b;
else
b=char('A'-10+cyfra)+b;
d=d/podstawa;
}
return b;
}
bool palindrom(string liczba)
{
bool c=true;
for(int i=0; i<liczba.size()/2; i++)
{
if(liczba[i]!=liczba[liczba.size()-1-i])
{
c=false;
break;
}
}
return c;
}
int main()
{
int a, l=0, podstawa;
string b="";
bool c=true;
while(cin>>a)
{
for(podstawa=2; podstawa<=16; podstawa++)
{
if(palindrom(zamiana(a, podstawa)))
{
l++;
}
cout<<podstawa<<" "<<l<<endl;
}
}
return 0;
}