Каждый раз делишь на два и записываешь остаток, потом записываешь наоборот.
123/2 - остаток 1
61/2 - остаток 1
30/2 - остаток 0
15/2 - остаток 1
7/2 - остаток 1
3/2- остаток 1
под конец всегда нужно добавлять единицу
123 = 1111011
67/2 - остаток 1
33/2 - остаток 1
16/2 - остаток 0
8/2 - остаток 0
4/2 - остаток 0
2/2 - остаток 0
и под конец всегда нужно добавлять единицу
67=1000011
#include <iostream>
#include <sstream>
using namespace std;
int ispal(int x)
{
stringstream a;
a<<x;
string s =a.str();
string t="";
for(int i=s.length()-1;i>=0;i--)
t+=s[i];
for(int i=0;i<s.length();i++)
if(s[i]!=t[i])
return 0;
return 1;
}
int main()
{
int n;
cin>>n;
while(!ispal(n))
n++;
cout<<n;
return 0;
}
Ответ:
7
Объяснение:
p:=Pos('o',s);
индекс начала подстроки 'o' в строке s, база = 1
Чтобы в другое время тебя этот ужасный звук не беспокоил: все вместе спустили и всем хорошо)))