{"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+3531=4884$  \n\n在这里的一步是指进行了一次 $N$ 进制的加法，上例最少用了 $4$ 步得到回文数 $4884$。\n\n写一个程序，给定一个 $N$（$2 \\le N \\le 10$ 或 $N=16$）进制数 $M$（$100$ 位之内），求最少经过几步可以得到回文数。如果在 $30$ 步以内（包含 $30$ 步）不可能得到回文数，则输出 `Impossible!`。\n\n## Input\n\n两行，分别是 $N$，$M$。\n\n## Output\n\n如果能在 $30$ 步以内得到回文数，输出格式形如 `STEP=ans`，其中 $\\text{ans}$ 为最少得到回文数的步数。\n\n否则输出 `Impossible!`。\n\n[samples]","is_translate":false,"language":"English"}],"meta":{"iden":"LGP1015","tags":["模拟","高精度","1999","NOIP 普及组","进制"],"sample_group":[["10\n87\n","STEP=4\n"]],"created_at":"2026-03-03 11:09:25"}}