[NOIP 1999 普及组] 回文数

Luogu
IDLGP1015
Time1000ms
Memory125MB
DifficultyP2
模拟高精度1999NOIP 普及组进制
若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。 例如:给定一个十进制数 $56$,将 $56$ 加 $65$(即把 $56$ 从右向左读),得到 $121$ 是一个回文数。 又如:对于十进制数 $87$: STEP1:$87+78=165$ STEP2:$165+561=726$ STEP3:$726+627=1353$ STEP4:$1353+3531=4884$ 在这里的一步是指进行了一次 $N$ 进制的加法,上例最少用了 $4$ 步得到回文数 $4884$。 写一个程序,给定一个 $N$($2 \le N \le 10$ 或 $N=16$)进制数 $M$($100$ 位之内),求最少经过几步可以得到回文数。如果在 $30$ 步以内(包含 $30$ 步)不可能得到回文数,则输出 `Impossible!`。 ## Input 两行,分别是 $N$,$M$。 ## Output 如果能在 $30$ 步以内得到回文数,输出格式形如 `STEP=ans`,其中 $\text{ans}$ 为最少得到回文数的步数。 否则输出 `Impossible!`。 [samples]
Samples
Input #1
10
87
Output #1
STEP=4
API Response (JSON)
{
  "problem": {
    "name": "[NOIP 1999 普及组] 回文数",
    "description": {
      "content": "若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。 例如:给定一个十进制数 $56$,将 $56$ 加 $65$(即把 $56$ 从右向左读),得到 $121$ 是一个回文数。 又如:对于十进制数 $87$: STEP1:$87+78=165$   STEP2:$165+561=726$   STEP3:$726+627=1353$    STEP4:$1353+3",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 128000
    },
    "difficulty": {
      "LuoguStyle": "P2"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP1015"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。\n\n例如:给定一个十进制数 $56$,将 $56$ 加 $65$(即把 $56$ 从右向左读),得到 $121$ 是一个回文数。\n\n又如:对于十进制数 $87$:\n\nSTEP1:$87+78=165$  \nSTEP2:$165+561=726$  \nSTEP3:$726+627=1353$   \nSTEP4:$1353+3...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments