Псевдо палиндром

Нужно вывести количество псевдо палиндромов - числа не являющиеся изначально палиндромамами, но при отбрасывании старшей цифры числа ими становятся. Написал код, но он работает только для 1 числа, если начать вводить последовательность из нескольких чисел - перестает считать их количество. Помогите пожалуйста обнаружить проблему.

#include <math.h>
#include <iostream>
using namespace std;

int otrez(int k) {
  int raz = 0, t, ost;
  int num = 0;
  t = k;

  while (t != 0) {
    raz++;
    t /= 10;
  }

  for (int i = 1; i < raz; i++){
    ost = k % 10;
    num = num + (ost * pow(10., i - 1));
    k /= 10;
  }

  k = num;
  return k;
}

bool pol(int k) {
  int pol = 0;
  int d = 0;
  int t = k;

  while (t) {
    d = t % 10;
    t /= 10;
    pol = pol * 10 + d;
  }

  return (k == pol);
}

int main() {
  int n, 
      count = 0,
      t,
      num   = 0,
      raz   = 0,
      i     = 0,
      p     = 0,
      y     = 0;
  double k;

  cin >> n;

  for (int i = 0; i < n; i++) {
    cin >> k;
    p = k;

    while (p != 0) {
      raz++;
      p /= 10;
    }

    t = otrez(k);
    y = t;

    if (y == 0) num++;
    else {
      while (y) {
        num++;
        y /= 10;
      }
    }

    if (k < 9) count = count + 0;
    if (pol(k)) count = count + 0;
    else {
      if(pol(t) && raz == num+1) count++;
      else count = count + 0;
    }
  }

  cout << count;
  return 0;
}

Ответы (0 шт):