Вопрос задан 01.06.2018 в 22:24. Предмет Информатика. Спрашивает Степанов Степан.

C++ или Паскаль решите пожалуйстаааа Натуральное число называется если читается слева направо и

справа налево одинаково. Вам дано одно натуральное число N, которое состоит из не более чем 106 цифр. Найдите наименьший палиндром, который строго больше N. Формат входного файла В единственной строке входного файла содержится одно натуральное число N. N не содержит лидирующих нулей и состоит из не более чем 106 цифр. Формат выходного файла Выведите одно целое число – наименьший палиндром, который строго больше N.например 365 - 373
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Смирнова Вика.

//Dev-C++ 5.11

#include <iostream>
#include <string>
using namespace std;

void plus1(char*,int*);

int main(void)
 {string n;
 char poli[108];
 int kar=0,buf,add=0;
 cin>>n;
  for(int i=0;i<n.length()/2+n.length()%2;i++)
   {poli[kar]=n[i];
   kar++;}
  buf=kar;
  plus1(poli,&kar);
  if(buf!=kar)
   {add++;
   buf=kar;}
  if((n.length()+add)%2!=0)
   for(int i=buf-2;i>=0;i--)
    {poli[kar]=poli[i];
    kar++;}
  else
   for(int i=buf-1;i>=0;i--)
    {poli[kar]=poli[i];
    kar++;}
 for(int i=0;i<kar;i++)
  cout<<poli[i];
 return 0;}
 


void plus1(char slogaem[],int* len)
 {int add=1;
 for(int i=*len-1;i>=0;i--)
  if(slogaem[i]=='9' && add==1)
   {add=1;
   slogaem[i]='0';}
   else
   {slogaem[i]+=add;
   add=0;}
 if(slogaem[0]=='0' && add==1)
  {for(int i=*len;i>0;i--)
   slogaem[i]=slogaem[i-1];
  slogaem[0]='1';
  *len+=1;}}

Пример ввода:
93439
Пример вывода:
93539

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос