Dzięki za odp. wykorzystałem obie metody w programie i działają ok ale coś mi sie sypie w programie i nie mogę dojść dlaczego. Robie zadanie ze spoja. Chodzi o szukanie palindromów czyli liczb czytanych w obu kierunkach tak samo.
Jesli dana liczba nie jest palindromem to liczba i ta liczba czytana od tyłu są sumowane i suma jest sprawdzane ponownie czy jest palindromem np. 28 nie jest wiec 28+82=110 110 nie jest więc 110+011=121 i 121 jest palindromem.
Już prawie działa :) ale prawie robi wielką różnice. Nie moge dojść co sypie
#include <iostream>
#include <cstdlib>
#include <sstream>
using namespace std;
int main()
{
int k=0;
string liczba;
string tyl;
cin>>liczba;
int dlug=liczba.length();
for(int i=dlug-1; i>=0; i--)
{
tyl+=liczba[i]; //zapisuje liczbe od tylu met1
}
cout<<"liczba od tylu nr1: "<<tyl<<endl;
while(liczba!=tyl)
{
int cyfint1=atoi(liczba.c_str());
int cyfint2=atoi(tyl.c_str()); //przerobienie stringów na inty
int suma=cyfint1+cyfint2; //sumowanie intow
ostringstream ss;
ss << suma;
liczba = ss.str();
cout<<"suma "<<liczba<<endl; //zapisanie sumy w stringu
int dlug=liczba.length();
cout<<"dlugosc nowej liczby "<<dlug<<endl;
tyl.resize(dlug);
for(int i=dlug-1; i>=0; i--)
{
tyl[k]=liczba[i];
k++; //tworzenie nowej liczby od tylu met2
//nie tworzy nowych liczb
}
cout<<"kolejne liczba od tylu "<<tyl<<endl;
}
cout<<"Ta liczba jest palindromem: "<<tyl<<endl;
return 0;
}